TPTP Problem File: DAT257^1.p

View Solutions - Solve Problem

%------------------------------------------------------------------------------
% File     : DAT257^1 : TPTP v8.2.0. Released v7.0.0.
% Domain   : Data Structures
% Problem  : Data structure for translators from streams to streams 113
% Version  : [Bla16] axioms : Especial.
% English  :

% Refs     : [BH+14] Blanchette et al. (2014), Truly Modular (Co)datatypes
%          : [RB15]  Reynolds & Blanchette (2015), A Decision Procedure for
%          : [Bla16] Blanchette (2016), Email to Geoff Sutcliffe
% Source   : [Bla16]
% Names    : stream_processor__113.p [Bla16]

% Status   : Theorem
% Rating   : 1.00 v7.1.0
% Syntax   : Number of formulae    :  320 ( 149 unt;  74 typ;   0 def)
%            Number of atoms       :  552 ( 310 equ;   4 cnn)
%            Maximal formula atoms :   17 (   2 avg)
%            Number of connectives : 5958 (  83   ~;   7   |;  40   &;5588   @)
%                                         (   0 <=>; 240  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   28 (   9 avg)
%            Number of types       :    5 (   4 usr)
%            Number of type conns  :  483 ( 483   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   74 (  70 usr;   8 con; 0-8 aty)
%            Number of variables   : 1571 ( 119   ^;1303   !;  23   ?;1571   :)
%                                         ( 126  !>;   0  ?*;   0  @-;   0  @+)
% SPC      : TH1_THM_EQU_NAR

% Comments : This file was generated by Isabelle (most likely Sledgehammer)
%            2016-07-13 14:39:29.901
%------------------------------------------------------------------------------
%----Could-be-implicit typings (10)
thf(ty_t_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062,type,
    stream1273403375_sp_nu: $tType > $tType > $tType ).

thf(ty_t_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062,type,
    stream901396144_sp_mu: $tType > $tType > $tType > $tType ).

thf(ty_t_Product__Type_Oprod,type,
    product_prod: $tType > $tType > $tType ).

thf(ty_t_Stream_Ostream,type,
    stream: $tType > $tType ).

thf(ty_t_Set_Oset,type,
    set: $tType > $tType ).

thf(ty_t_Nat_Onat,type,
    nat: $tType ).

thf(ty_t_itself,type,
    itself: $tType > $tType ).

thf(ty_tf_c,type,
    c: $tType ).

thf(ty_tf_b,type,
    b: $tType ).

thf(ty_tf_a,type,
    a: $tType ).

%----Explicit typings (64)
thf(sy_c_BNF__Def_Oconvol,type,
    bNF_convol: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B ) > ( A > C ) > A > ( product_prod @ B @ C ) ) ).

thf(sy_c_Basic__BNFs_Opred__fun,type,
    basic_pred_fun: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( B > $o ) > ( A > B ) > $o ) ).

thf(sy_c_Fun_Ocomp,type,
    comp: 
      !>[B: $tType,C: $tType,A: $tType] : ( ( B > C ) > ( A > B ) > A > C ) ).

thf(sy_c_HOL_Oundefined,type,
    undefined: 
      !>[A: $tType] : A ).

thf(sy_c_If,type,
    if: 
      !>[A: $tType] : ( $o > A > A > A ) ).

thf(sy_c_Product__Type_OPair,type,
    product_Pair: 
      !>[A: $tType,B: $tType] : ( A > B > ( product_prod @ A @ B ) ) ).

thf(sy_c_Product__Type_Ocurry,type,
    product_curry: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( ( product_prod @ A @ B ) > C ) > A > B > C ) ).

thf(sy_c_Product__Type_Ointernal__case__prod,type,
    produc2004651681e_prod: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( product_prod @ A @ B ) > C ) ).

thf(sy_c_Product__Type_Oold_Oprod_Orec__prod,type,
    product_rec_prod: 
      !>[A: $tType,B: $tType,T: $tType] : ( ( A > B > T ) > ( product_prod @ A @ B ) > T ) ).

thf(sy_c_Pure_Otype,type,
    type: 
      !>[A: $tType] : ( itself @ A ) ).

thf(sy_c_Relation_ODomain,type,
    domain: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ A ) ) ).

thf(sy_c_Relation_ORange,type,
    range: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ B ) ) > ( set @ B ) ) ).

thf(sy_c_Relation_ORangep,type,
    rangep: 
      !>[A: $tType,B: $tType] : ( ( A > B > $o ) > B > $o ) ).

thf(sy_c_Relation_Oinv__image,type,
    inv_image: 
      !>[B: $tType,A: $tType] : ( ( set @ ( product_prod @ B @ B ) ) > ( A > B ) > ( set @ ( product_prod @ A @ A ) ) ) ).

thf(sy_c_Set_OBall,type,
    ball: 
      !>[A: $tType] : ( ( set @ A ) > ( A > $o ) > $o ) ).

thf(sy_c_Set_OCollect,type,
    collect: 
      !>[A: $tType] : ( ( A > $o ) > ( set @ A ) ) ).

thf(sy_c_Set_Oinsert,type,
    insert: 
      !>[A: $tType] : ( A > ( set @ A ) > ( set @ A ) ) ).

thf(sy_c_Stream_Osdrop__while,type,
    sdrop_while: 
      !>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Osfilter,type,
    sfilter: 
      !>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Osinterleave,type,
    sinterleave: 
      !>[A: $tType] : ( ( stream @ A ) > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Osmap2,type,
    smap2: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > B > C ) > ( stream @ A ) > ( stream @ B ) > ( stream @ C ) ) ).

thf(sy_c_Stream_Osmember,type,
    smember: 
      !>[A: $tType] : ( A > ( stream @ A ) > $o ) ).

thf(sy_c_Stream_Ostream_OSCons,type,
    sCons: 
      !>[A: $tType] : ( A > ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Ostream_Ocase__stream,type,
    case_stream: 
      !>[A: $tType,B: $tType] : ( ( A > ( stream @ A ) > B ) > ( stream @ A ) > B ) ).

thf(sy_c_Stream_Ostream_Ocorec__stream,type,
    corec_stream: 
      !>[C: $tType,A: $tType] : ( ( C > A ) > ( C > $o ) > ( C > ( stream @ A ) ) > ( C > C ) > C > ( stream @ A ) ) ).

thf(sy_c_Stream_Ostream_Opred__stream,type,
    pred_stream: 
      !>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Stream_Ostream_Oshd,type,
    shd: 
      !>[A: $tType] : ( ( stream @ A ) > A ) ).

thf(sy_c_Stream_Ostream_Osmap,type,
    smap: 
      !>[A: $tType,Aa: $tType] : ( ( A > Aa ) > ( stream @ A ) > ( stream @ Aa ) ) ).

thf(sy_c_Stream_Ostream_Osset,type,
    sset: 
      !>[A: $tType] : ( ( stream @ A ) > ( set @ A ) ) ).

thf(sy_c_Stream_Ostream_Ostl,type,
    stl: 
      !>[A: $tType] : ( ( stream @ A ) > ( stream @ A ) ) ).

thf(sy_c_Stream_Ostream__all,type,
    stream_all: 
      !>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Stream_Ostreams,type,
    streams: 
      !>[A: $tType] : ( ( set @ A ) > ( set @ ( stream @ A ) ) ) ).

thf(sy_c_Stream_Ostreamsp,type,
    streamsp: 
      !>[A: $tType] : ( ( A > $o ) > ( stream @ A ) > $o ) ).

thf(sy_c_Stream_Oszip,type,
    szip: 
      !>[A: $tType,B: $tType] : ( ( stream @ A ) > ( stream @ B ) > ( stream @ ( product_prod @ A @ B ) ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Ocopy,type,
    stream2017582925e_copy: 
      !>[A: $tType] : ( stream1273403375_sp_nu @ A @ A ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Orun_092_060_094sub_062_092_060mu_062,type,
    stream5064451run_mu: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( stream901396144_sp_mu @ A @ B @ C ) > ( stream @ A ) > ( product_prod @ ( product_prod @ B @ C ) @ ( stream @ A ) ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Orun_092_060_094sub_062_092_060nu_062,type,
    stream377071682run_nu: 
      !>[A: $tType,B: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream @ A ) > ( stream @ B ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_OGet,type,
    stream1294929701mu_Get: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > ( stream901396144_sp_mu @ A @ B @ C ) ) > ( stream901396144_sp_mu @ A @ B @ C ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_OPut,type,
    stream1370332830mu_Put: 
      !>[B: $tType,C: $tType,A: $tType] : ( B > C > ( stream901396144_sp_mu @ A @ B @ C ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Omap__sp_092_060_094sub_062_092_060mu_062,type,
    stream1058219438_sp_mu: 
      !>[B: $tType,Ba: $tType,C: $tType,Ca: $tType,A: $tType] : ( ( B > Ba ) > ( C > Ca ) > ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ A @ Ba @ Ca ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Opred__sp_092_060_094sub_062_092_060mu_062,type,
    stream123009735_sp_mu: 
      !>[A: $tType,B: $tType,E: $tType] : ( ( A > $o ) > ( B > $o ) > ( stream901396144_sp_mu @ E @ A @ B ) > $o ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Orec__sp_092_060_094sub_062_092_060mu_062,type,
    stream674629690_sp_mu: 
      !>[A: $tType,B: $tType,C: $tType,G: $tType] : ( ( ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G ) > ( B > C > G ) > ( stream901396144_sp_mu @ A @ B @ C ) > G ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062_Osize__sp_092_060_094sub_062_092_060mu_062,type,
    stream1362355943_sp_mu: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( A > nat ) > ( B > nat ) > ( C > nat ) > ( stream901396144_sp_mu @ A @ B @ C ) > nat ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp,type,
    stream1747196112u_comp: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > ( stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp2,type,
    stream967973730_comp2: 
      !>[D: $tType,A: $tType,B: $tType,C: $tType] : ( ( stream901396144_sp_mu @ D @ A @ B ) > ( stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D ) ) > ( stream901396144_sp_mu @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp2R,type,
    stream1312210288comp2R: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType] : ( ( A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ) ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060mu_062__comp__rel,type,
    stream592421929mp_rel: 
      !>[A: $tType,B: $tType,C: $tType,D: $tType] : ( ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) > $o ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_OIn,type,
    stream1686501333_nu_In: 
      !>[A: $tType,B: $tType] : ( ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > ( stream1273403375_sp_nu @ A @ B ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_Ocase__sp_092_060_094sub_062_092_060nu_062,type,
    stream1502363800_sp_nu: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C ) > ( stream1273403375_sp_nu @ A @ B ) > C ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062_Oout,type,
    stream1200245950nu_out: 
      !>[A: $tType,B: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062__comp,type,
    stream1967106959u_comp: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream1273403375_sp_nu @ C @ A ) > ( stream1273403375_sp_nu @ C @ B ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osp_092_060_094sub_062_092_060nu_062__comp2,type,
    stream104478819_comp2: 
      !>[A: $tType,B: $tType,C: $tType] : ( ( stream1273403375_sp_nu @ A @ B ) > ( stream1273403375_sp_nu @ C @ A ) > ( stream1273403375_sp_nu @ C @ B ) ) ).

thf(sy_c_Stream__Processor__Mirabelle__rrumbueyrq_Osub,type,
    stream152839592le_sub: 
      !>[A: $tType,B: $tType,C: $tType] : ( set @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) ) ) ).

thf(sy_c_Wellfounded_Oacc,type,
    acc: 
      !>[A: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ A ) ) ).

thf(sy_c_Wellfounded_Oaccp,type,
    accp: 
      !>[A: $tType] : ( ( A > A > $o ) > A > $o ) ).

thf(sy_c_Wellfounded_Olex__prod,type,
    lex_prod: 
      !>[A: $tType,B: $tType] : ( ( set @ ( product_prod @ A @ A ) ) > ( set @ ( product_prod @ B @ B ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_Wfrec_Ocut,type,
    cut: 
      !>[A: $tType,B: $tType] : ( ( A > B ) > ( set @ ( product_prod @ A @ A ) ) > A > A > B ) ).

thf(sy_c_Wfrec_Osame__fst,type,
    same_fst: 
      !>[A: $tType,B: $tType] : ( ( A > $o ) > ( A > ( set @ ( product_prod @ B @ B ) ) ) > ( set @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) ) ) ).

thf(sy_c_member,type,
    member: 
      !>[A: $tType] : ( A > ( set @ A ) > $o ) ).

thf(sy_v_b____,type,
    b2: b ).

thf(sy_v_sb____,type,
    sb: stream @ a ).

thf(sy_v_sp_H_H____,type,
    sp: stream1273403375_sp_nu @ c @ b ).

thf(sy_v_sp_Hb____,type,
    sp_b: stream1273403375_sp_nu @ a @ c ).

thf(sy_v_spb____,type,
    spb: stream1273403375_sp_nu @ c @ b ).

%----Relevant facts (242)
thf(fact_0_stream_Oexpand,axiom,
    ! [A: $tType,Stream: stream @ A,Stream2: stream @ A] :
      ( ( ( ( shd @ A @ Stream )
          = ( shd @ A @ Stream2 ) )
        & ( ( stl @ A @ Stream )
          = ( stl @ A @ Stream2 ) ) )
     => ( Stream = Stream2 ) ) ).

% stream.expand
thf(fact_1_stream_Ocoinduct,axiom,
    ! [A: $tType,R: ( stream @ A ) > ( stream @ A ) > $o,Stream: stream @ A,Stream2: stream @ A] :
      ( ( R @ Stream @ Stream2 )
     => ( ! [Stream3: stream @ A,Stream4: stream @ A] :
            ( ( R @ Stream3 @ Stream4 )
           => ( ( ( shd @ A @ Stream3 )
                = ( shd @ A @ Stream4 ) )
              & ( R @ ( stl @ A @ Stream3 ) @ ( stl @ A @ Stream4 ) ) ) )
       => ( Stream = Stream2 ) ) ) ).

% stream.coinduct
thf(fact_2_stream_Ocoinduct__strong,axiom,
    ! [A: $tType,R: ( stream @ A ) > ( stream @ A ) > $o,Stream: stream @ A,Stream2: stream @ A] :
      ( ( R @ Stream @ Stream2 )
     => ( ! [Stream3: stream @ A,Stream4: stream @ A] :
            ( ( R @ Stream3 @ Stream4 )
           => ( ( ( shd @ A @ Stream3 )
                = ( shd @ A @ Stream4 ) )
              & ( ( R @ ( stl @ A @ Stream3 ) @ ( stl @ A @ Stream4 ) )
                | ( ( stl @ A @ Stream3 )
                  = ( stl @ A @ Stream4 ) ) ) ) )
       => ( Stream = Stream2 ) ) ) ).

% stream.coinduct_strong
thf(fact_3_run_092_060_094sub_062_092_060nu_062__copy,axiom,
    ! [A: $tType,S: stream @ A] :
      ( ( stream377071682run_nu @ A @ A @ ( stream2017582925e_copy @ A ) @ S )
      = S ) ).

% run\<^sub>\<nu>_copy
thf(fact_4_Put_Ohyps,axiom,
    ( ( stream1370332830mu_Put @ b @ ( stream1273403375_sp_nu @ c @ b ) @ c @ b2 @ sp )
    = ( stream1200245950nu_out @ c @ b @ spb ) ) ).

% Put.hyps
thf(fact_5_stream_Ocase__eq__if,axiom,
    ! [B: $tType,A: $tType] :
      ( ( case_stream @ A @ B )
      = ( ^ [F2: A > ( stream @ A ) > B,Stream5: stream @ A] : ( F2 @ ( shd @ A @ Stream5 ) @ ( stl @ A @ Stream5 ) ) ) ) ).

% stream.case_eq_if
thf(fact_6_sdrop__while_Osimps,axiom,
    ! [A: $tType] :
      ( ( sdrop_while @ A )
      = ( ^ [P: A > $o,S2: stream @ A] : ( if @ ( stream @ A ) @ ( P @ ( shd @ A @ S2 ) ) @ ( sdrop_while @ A @ P @ ( stl @ A @ S2 ) ) @ S2 ) ) ) ).

% sdrop_while.simps
thf(fact_7_stream_Ocollapse,axiom,
    ! [A: $tType,Stream: stream @ A] :
      ( ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) )
      = Stream ) ).

% stream.collapse
thf(fact_8_streamsE,axiom,
    ! [A: $tType,S: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
     => ~ ( ( member @ A @ ( shd @ A @ S ) @ A2 )
         => ~ ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ A2 ) ) ) ) ).

% streamsE
thf(fact_9_in__streams,axiom,
    ! [A: $tType,S: stream @ A,S3: set @ A] :
      ( ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ S3 ) )
     => ( ( member @ A @ ( shd @ A @ S ) @ S3 )
       => ( member @ ( stream @ A ) @ S @ ( streams @ A @ S3 ) ) ) ) ).

% in_streams
thf(fact_10_run_092_060_094sub_062_092_060mu_062_Osimps_I1_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),S: stream @ A] :
      ( ( stream5064451run_mu @ A @ B @ C @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ S )
      = ( stream5064451run_mu @ A @ B @ C @ ( F3 @ ( shd @ A @ S ) ) @ ( stl @ A @ S ) ) ) ).

% run\<^sub>\<mu>.simps(1)
thf(fact_11_sset__induct,axiom,
    ! [A: $tType,Y: A,S: stream @ A,P2: A > ( stream @ A ) > $o] :
      ( ( member @ A @ Y @ ( sset @ A @ S ) )
     => ( ! [S4: stream @ A] : ( P2 @ ( shd @ A @ S4 ) @ S4 )
       => ( ! [S4: stream @ A,Y2: A] :
              ( ( member @ A @ Y2 @ ( sset @ A @ ( stl @ A @ S4 ) ) )
             => ( ( P2 @ Y2 @ ( stl @ A @ S4 ) )
               => ( P2 @ Y2 @ S4 ) ) )
         => ( P2 @ Y @ S ) ) ) ) ).

% sset_induct
thf(fact_12_sp_092_060_094sub_062_092_060mu_062_Oinject_I1_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,X1: A > ( stream901396144_sp_mu @ A @ B @ C ),Y1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
      ( ( ( stream1294929701mu_Get @ A @ B @ C @ X1 )
        = ( stream1294929701mu_Get @ A @ B @ C @ Y1 ) )
      = ( X1 = Y1 ) ) ).

% sp\<^sub>\<mu>.inject(1)
thf(fact_13_stream_Oinject,axiom,
    ! [A: $tType,X1: A,X2: stream @ A,Y1: A,Y22: stream @ A] :
      ( ( ( sCons @ A @ X1 @ X2 )
        = ( sCons @ A @ Y1 @ Y22 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y22 ) ) ) ).

% stream.inject
thf(fact_14_sp_092_060_094sub_062_092_060mu_062_Oinject_I2_J,axiom,
    ! [A: $tType,B: $tType,C: $tType,X21: B,X22: C,Y21: B,Y222: C] :
      ( ( ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 )
        = ( stream1370332830mu_Put @ B @ C @ A @ Y21 @ Y222 ) )
      = ( ( X21 = Y21 )
        & ( X22 = Y222 ) ) ) ).

% sp\<^sub>\<mu>.inject(2)
thf(fact_15_stream_Oset__intros_I2_J,axiom,
    ! [A: $tType,X: A,A22: stream @ A,A1: A] :
      ( ( member @ A @ X @ ( sset @ A @ A22 ) )
     => ( member @ A @ X @ ( sset @ A @ ( sCons @ A @ A1 @ A22 ) ) ) ) ).

% stream.set_intros(2)
thf(fact_16_stream_Oset__intros_I1_J,axiom,
    ! [A: $tType,A1: A,A22: stream @ A] : ( member @ A @ A1 @ ( sset @ A @ ( sCons @ A @ A1 @ A22 ) ) ) ).

% stream.set_intros(1)
thf(fact_17_sp_092_060_094sub_062_092_060mu_062_Odistinct_I1_J,axiom,
    ! [B: $tType,A: $tType,C: $tType,X1: A > ( stream901396144_sp_mu @ A @ B @ C ),X21: B,X22: C] :
      ( ( stream1294929701mu_Get @ A @ B @ C @ X1 )
     != ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) ) ).

% sp\<^sub>\<mu>.distinct(1)
thf(fact_18_stream_Ocase,axiom,
    ! [B: $tType,A: $tType,F3: A > ( stream @ A ) > B,X1: A,X2: stream @ A] :
      ( ( case_stream @ A @ B @ F3 @ ( sCons @ A @ X1 @ X2 ) )
      = ( F3 @ X1 @ X2 ) ) ).

% stream.case
thf(fact_19_streams_Ocases,axiom,
    ! [A: $tType,A3: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ A3 @ ( streams @ A @ A2 ) )
     => ~ ! [A4: A,S4: stream @ A] :
            ( ( A3
              = ( sCons @ A @ A4 @ S4 ) )
           => ( ( member @ A @ A4 @ A2 )
             => ~ ( member @ ( stream @ A ) @ S4 @ ( streams @ A @ A2 ) ) ) ) ) ).

% streams.cases
thf(fact_20_streams_Osimps,axiom,
    ! [A: $tType,A3: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ A3 @ ( streams @ A @ A2 ) )
      = ( ? [A5: A,S2: stream @ A] :
            ( ( A3
              = ( sCons @ A @ A5 @ S2 ) )
            & ( member @ A @ A5 @ A2 )
            & ( member @ ( stream @ A ) @ S2 @ ( streams @ A @ A2 ) ) ) ) ) ).

% streams.simps
thf(fact_21_stream_Oexhaust,axiom,
    ! [A: $tType,Y: stream @ A] :
      ~ ! [X12: A,X23: stream @ A] :
          ( Y
         != ( sCons @ A @ X12 @ X23 ) ) ).

% stream.exhaust
thf(fact_22_streams__Stream,axiom,
    ! [A: $tType,X: A,S: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ ( sCons @ A @ X @ S ) @ ( streams @ A @ A2 ) )
      = ( ( member @ A @ X @ A2 )
        & ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) ) ) ) ).

% streams_Stream
thf(fact_23_stream_Oset__cases,axiom,
    ! [A: $tType,E2: A,A3: stream @ A] :
      ( ( member @ A @ E2 @ ( sset @ A @ A3 ) )
     => ( ! [Z2: stream @ A] :
            ( A3
           != ( sCons @ A @ E2 @ Z2 ) )
       => ~ ! [Z1: A,Z2: stream @ A] :
              ( ( A3
                = ( sCons @ A @ Z1 @ Z2 ) )
             => ~ ( member @ A @ E2 @ ( sset @ A @ Z2 ) ) ) ) ) ).

% stream.set_cases
thf(fact_24_streams_Ocoinduct,axiom,
    ! [A: $tType,X3: ( stream @ A ) > $o,X: stream @ A,A2: set @ A] :
      ( ( X3 @ X )
     => ( ! [X4: stream @ A] :
            ( ( X3 @ X4 )
           => ? [A6: A,S5: stream @ A] :
                ( ( X4
                  = ( sCons @ A @ A6 @ S5 ) )
                & ( member @ A @ A6 @ A2 )
                & ( ( X3 @ S5 )
                  | ( member @ ( stream @ A ) @ S5 @ ( streams @ A @ A2 ) ) ) ) )
       => ( member @ ( stream @ A ) @ X @ ( streams @ A @ A2 ) ) ) ) ).

% streams.coinduct
thf(fact_25_sdrop__while__SCons,axiom,
    ! [A: $tType,P2: A > $o,A3: A,S: stream @ A] :
      ( ( ( P2 @ A3 )
       => ( ( sdrop_while @ A @ P2 @ ( sCons @ A @ A3 @ S ) )
          = ( sdrop_while @ A @ P2 @ S ) ) )
      & ( ~ ( P2 @ A3 )
       => ( ( sdrop_while @ A @ P2 @ ( sCons @ A @ A3 @ S ) )
          = ( sCons @ A @ A3 @ S ) ) ) ) ).

% sdrop_while_SCons
thf(fact_26_stream_Oset__induct,axiom,
    ! [A: $tType,X: A,A3: stream @ A,P2: A > ( stream @ A ) > $o] :
      ( ( member @ A @ X @ ( sset @ A @ A3 ) )
     => ( ! [Z1: A,Z2: stream @ A] : ( P2 @ Z1 @ ( sCons @ A @ Z1 @ Z2 ) )
       => ( ! [Z1: A,Z2: stream @ A,Xa: A] :
              ( ( member @ A @ Xa @ ( sset @ A @ Z2 ) )
             => ( ( P2 @ Xa @ Z2 )
               => ( P2 @ Xa @ ( sCons @ A @ Z1 @ Z2 ) ) ) )
         => ( P2 @ X @ A3 ) ) ) ) ).

% stream.set_induct
thf(fact_27_sp_092_060_094sub_062_092_060nu_062_Oexpand,axiom,
    ! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B,Sp_nu2: stream1273403375_sp_nu @ A @ B] :
      ( ( ( stream1200245950nu_out @ A @ B @ Sp_nu )
        = ( stream1200245950nu_out @ A @ B @ Sp_nu2 ) )
     => ( Sp_nu = Sp_nu2 ) ) ).

% sp\<^sub>\<nu>.expand
thf(fact_28_sp_092_060_094sub_062_092_060mu_062_Oexhaust,axiom,
    ! [B: $tType,A: $tType,C: $tType,Y: stream901396144_sp_mu @ A @ B @ C] :
      ( ! [X12: A > ( stream901396144_sp_mu @ A @ B @ C )] :
          ( Y
         != ( stream1294929701mu_Get @ A @ B @ C @ X12 ) )
     => ~ ! [X212: B,X222: C] :
            ( Y
           != ( stream1370332830mu_Put @ B @ C @ A @ X212 @ X222 ) ) ) ).

% sp\<^sub>\<mu>.exhaust
thf(fact_29_sp_092_060_094sub_062_092_060mu_062__comp_Oinduct,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,P2: ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > $o,A0: stream901396144_sp_mu @ A @ B @ C,A1: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
      ( ! [B2: B,Sp: C,X12: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] : ( P2 @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ X12 )
     => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
            ( ( P2 @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) )
           => ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
       => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
              ( ! [X5: D] : ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ X5 ) )
             => ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) )
         => ( P2 @ A0 @ A1 ) ) ) ) ).

% sp\<^sub>\<mu>_comp.induct
thf(fact_30_stream_Osel_I2_J,axiom,
    ! [A: $tType,X1: A,X2: stream @ A] :
      ( ( stl @ A @ ( sCons @ A @ X1 @ X2 ) )
      = X2 ) ).

% stream.sel(2)
thf(fact_31_stream_Osel_I1_J,axiom,
    ! [A: $tType,X1: A,X2: stream @ A] :
      ( ( shd @ A @ ( sCons @ A @ X1 @ X2 ) )
      = X1 ) ).

% stream.sel(1)
thf(fact_32_stl__sset,axiom,
    ! [A: $tType,X: A,A3: stream @ A] :
      ( ( member @ A @ X @ ( sset @ A @ ( stl @ A @ A3 ) ) )
     => ( member @ A @ X @ ( sset @ A @ A3 ) ) ) ).

% stl_sset
thf(fact_33_shd__sset,axiom,
    ! [A: $tType,A3: stream @ A] : ( member @ A @ ( shd @ A @ A3 ) @ ( sset @ A @ A3 ) ) ).

% shd_sset
thf(fact_34_streams__stl,axiom,
    ! [A: $tType,S: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
     => ( member @ ( stream @ A ) @ ( stl @ A @ S ) @ ( streams @ A @ A2 ) ) ) ).

% streams_stl
thf(fact_35_streams__shd,axiom,
    ! [A: $tType,S: stream @ A,A2: set @ A] :
      ( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
     => ( member @ A @ ( shd @ A @ S ) @ A2 ) ) ).

% streams_shd
thf(fact_36_stream_Osplit__sel__asm,axiom,
    ! [B: $tType,A: $tType,P2: B > $o,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
      ( ( P2 @ ( case_stream @ A @ B @ F3 @ Stream ) )
      = ( ~ ( ( Stream
              = ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) )
            & ~ ( P2 @ ( F3 @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ) ) ) ).

% stream.split_sel_asm
thf(fact_37_stream_Osplit__sel,axiom,
    ! [B: $tType,A: $tType,P2: B > $o,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
      ( ( P2 @ ( case_stream @ A @ B @ F3 @ Stream ) )
      = ( ( Stream
          = ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) )
       => ( P2 @ ( F3 @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ) ) ).

% stream.split_sel
thf(fact_38_stream_Oexhaust__sel,axiom,
    ! [A: $tType,Stream: stream @ A] :
      ( Stream
      = ( sCons @ A @ ( shd @ A @ Stream ) @ ( stl @ A @ Stream ) ) ) ).

% stream.exhaust_sel
thf(fact_39_smember__code,axiom,
    ! [A: $tType,X: A,Y: A,S: stream @ A] :
      ( ( smember @ A @ X @ ( sCons @ A @ Y @ S ) )
      = ( ( X != Y )
       => ( smember @ A @ X @ S ) ) ) ).

% smember_code
thf(fact_40_sp_092_060_094sub_062_092_060mu_062__comp2R_Osimps_I1_J,axiom,
    ! [A: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,F3: A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ),B3: A,Sp2: stream1273403375_sp_nu @ B @ C] :
      ( ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ B @ C ) @ D @ B3 @ Sp2 ) )
      = ( F3 @ B3 @ ( stream1200245950nu_out @ B @ C @ Sp2 ) ) ) ).

% sp\<^sub>\<mu>_comp2R.simps(1)
thf(fact_41_sinterleave_Ocode,axiom,
    ! [A: $tType] :
      ( ( sinterleave @ A )
      = ( ^ [S1: stream @ A,S22: stream @ A] : ( sCons @ A @ ( shd @ A @ S1 ) @ ( sinterleave @ A @ S22 @ ( stl @ A @ S1 ) ) ) ) ) ).

% sinterleave.code
thf(fact_42_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I2_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),B3: A,Sp2: stream1273403375_sp_nu @ D @ A] :
      ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) )
      = ( stream1747196112u_comp @ A @ B @ C @ D @ ( F3 @ B3 ) @ ( stream1200245950nu_out @ D @ A @ Sp2 ) ) ) ).

% sp\<^sub>\<mu>_comp.simps(2)
thf(fact_43_smap2_Ocode,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( smap2 @ A @ B @ C )
      = ( ^ [F2: A > B > C,S1: stream @ A,S22: stream @ B] : ( sCons @ C @ ( F2 @ ( shd @ A @ S1 ) @ ( shd @ B @ S22 ) ) @ ( smap2 @ A @ B @ C @ F2 @ ( stl @ A @ S1 ) @ ( stl @ B @ S22 ) ) ) ) ) ).

% smap2.code
thf(fact_44_Stream_Osmember__def,axiom,
    ! [A: $tType] :
      ( ( smember @ A )
      = ( ^ [X6: A,S2: stream @ A] : ( member @ A @ X6 @ ( sset @ A @ S2 ) ) ) ) ).

% Stream.smember_def
thf(fact_45_mem__Collect__eq,axiom,
    ! [A: $tType,A3: A,P2: A > $o] :
      ( ( member @ A @ A3 @ ( collect @ A @ P2 ) )
      = ( P2 @ A3 ) ) ).

% mem_Collect_eq
thf(fact_46_Collect__mem__eq,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( collect @ A
        @ ^ [X6: A] : ( member @ A @ X6 @ A2 ) )
      = A2 ) ).

% Collect_mem_eq
thf(fact_47_Collect__cong,axiom,
    ! [A: $tType,P2: A > $o,Q: A > $o] :
      ( ! [X4: A] :
          ( ( P2 @ X4 )
          = ( Q @ X4 ) )
     => ( ( collect @ A @ P2 )
        = ( collect @ A @ Q ) ) ) ).

% Collect_cong
thf(fact_48_ext,axiom,
    ! [B: $tType,A: $tType,F3: A > B,G3: A > B] :
      ( ! [X4: A] :
          ( ( F3 @ X4 )
          = ( G3 @ X4 ) )
     => ( F3 = G3 ) ) ).

% ext
thf(fact_49_sp_092_060_094sub_062_092_060mu_062__comp_Ocases,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,X: product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
      ( ! [B2: B,Sp: C,Fsp: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
          ( X
         != ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
     => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
            ( X
           != ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
       => ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
              ( X
             != ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.cases
thf(fact_50_smap__ctr,axiom,
    ! [B: $tType,A: $tType,F3: B > A,S: stream @ B,X: A,S6: stream @ A] :
      ( ( ( smap @ B @ A @ F3 @ S )
        = ( sCons @ A @ X @ S6 ) )
      = ( ( ( F3 @ ( shd @ B @ S ) )
          = X )
        & ( ( smap @ B @ A @ F3 @ ( stl @ B @ S ) )
          = S6 ) ) ) ).

% smap_ctr
thf(fact_51_sfilter_Ocode,axiom,
    ! [A: $tType] :
      ( ( sfilter @ A )
      = ( ^ [P: A > $o,S2: stream @ A] : ( sCons @ A @ ( shd @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P ) @ S2 ) ) @ ( sfilter @ A @ P @ ( stl @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P ) @ S2 ) ) ) ) ) ) ).

% sfilter.code
thf(fact_52_stream_Oset,axiom,
    ! [A: $tType,X1: A,X2: stream @ A] :
      ( ( sset @ A @ ( sCons @ A @ X1 @ X2 ) )
      = ( insert @ A @ X1 @ ( sset @ A @ X2 ) ) ) ).

% stream.set
thf(fact_53_stream__all__Stream,axiom,
    ! [A: $tType,P2: A > $o,X: A,X3: stream @ A] :
      ( ( stream_all @ A @ P2 @ ( sCons @ A @ X @ X3 ) )
      = ( ( P2 @ X )
        & ( stream_all @ A @ P2 @ X3 ) ) ) ).

% stream_all_Stream
thf(fact_54_stream_Omap__sel_I2_J,axiom,
    ! [B: $tType,A: $tType,F3: A > B,A3: stream @ A] :
      ( ( stl @ B @ ( smap @ A @ B @ F3 @ A3 ) )
      = ( smap @ A @ B @ F3 @ ( stl @ A @ A3 ) ) ) ).

% stream.map_sel(2)
thf(fact_55_stream_Omap__sel_I1_J,axiom,
    ! [B: $tType,A: $tType,F3: A > B,A3: stream @ A] :
      ( ( shd @ B @ ( smap @ A @ B @ F3 @ A3 ) )
      = ( F3 @ ( shd @ A @ A3 ) ) ) ).

% stream.map_sel(1)
thf(fact_56_stream_Omap__comp,axiom,
    ! [B: $tType,C: $tType,A: $tType,G3: B > C,F3: A > B,V: stream @ A] :
      ( ( smap @ B @ C @ G3 @ ( smap @ A @ B @ F3 @ V ) )
      = ( smap @ A @ C @ ( comp @ B @ C @ A @ G3 @ F3 ) @ V ) ) ).

% stream.map_comp
thf(fact_57_run_092_060_094sub_062_092_060mu_062_Osimps_I2_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,B3: B,Sp2: C,S: stream @ A] :
      ( ( stream5064451run_mu @ A @ B @ C @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ S )
      = ( product_Pair @ ( product_prod @ B @ C ) @ ( stream @ A ) @ ( product_Pair @ B @ C @ B3 @ Sp2 ) @ S ) ) ).

% run\<^sub>\<mu>.simps(2)
thf(fact_58_stream_Omap,axiom,
    ! [B: $tType,A: $tType,F3: A > B,X1: A,X2: stream @ A] :
      ( ( smap @ A @ B @ F3 @ ( sCons @ A @ X1 @ X2 ) )
      = ( sCons @ B @ ( F3 @ X1 ) @ ( smap @ A @ B @ F3 @ X2 ) ) ) ).

% stream.map
thf(fact_59_stream_Oinj__map__strong,axiom,
    ! [B: $tType,A: $tType,X: stream @ A,Xa2: stream @ A,F3: A > B,Fa: A > B] :
      ( ! [Z: A,Za: A] :
          ( ( member @ A @ Z @ ( sset @ A @ X ) )
         => ( ( member @ A @ Za @ ( sset @ A @ Xa2 ) )
           => ( ( ( F3 @ Z )
                = ( Fa @ Za ) )
             => ( Z = Za ) ) ) )
     => ( ( ( smap @ A @ B @ F3 @ X )
          = ( smap @ A @ B @ Fa @ Xa2 ) )
       => ( X = Xa2 ) ) ) ).

% stream.inj_map_strong
thf(fact_60_stream_Omap__cong0,axiom,
    ! [B: $tType,A: $tType,X: stream @ A,F3: A > B,G3: A > B] :
      ( ! [Z: A] :
          ( ( member @ A @ Z @ ( sset @ A @ X ) )
         => ( ( F3 @ Z )
            = ( G3 @ Z ) ) )
     => ( ( smap @ A @ B @ F3 @ X )
        = ( smap @ A @ B @ G3 @ X ) ) ) ).

% stream.map_cong0
thf(fact_61_stream_Omap__cong,axiom,
    ! [B: $tType,A: $tType,X: stream @ A,Ya: stream @ A,F3: A > B,G3: A > B] :
      ( ( X = Ya )
     => ( ! [Z: A] :
            ( ( member @ A @ Z @ ( sset @ A @ Ya ) )
           => ( ( F3 @ Z )
              = ( G3 @ Z ) ) )
       => ( ( smap @ A @ B @ F3 @ X )
          = ( smap @ A @ B @ G3 @ Ya ) ) ) ) ).

% stream.map_cong
thf(fact_62_smap__streams,axiom,
    ! [A: $tType,B: $tType,S: stream @ A,A2: set @ A,F3: A > B,B4: set @ B] :
      ( ( member @ ( stream @ A ) @ S @ ( streams @ A @ A2 ) )
     => ( ! [X4: A] :
            ( ( member @ A @ X4 @ A2 )
           => ( member @ B @ ( F3 @ X4 ) @ B4 ) )
       => ( member @ ( stream @ B ) @ ( smap @ A @ B @ F3 @ S ) @ ( streams @ B @ B4 ) ) ) ) ).

% smap_streams
thf(fact_63_sfilter_Osimps_I2_J,axiom,
    ! [A: $tType,P2: A > $o,S: stream @ A] :
      ( ( stl @ A @ ( sfilter @ A @ P2 @ S ) )
      = ( sfilter @ A @ P2 @ ( stl @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P2 ) @ S ) ) ) ) ).

% sfilter.simps(2)
thf(fact_64_sfilter_Osimps_I1_J,axiom,
    ! [A: $tType,P2: A > $o,S: stream @ A] :
      ( ( shd @ A @ ( sfilter @ A @ P2 @ S ) )
      = ( shd @ A @ ( sdrop_while @ A @ ( comp @ $o @ $o @ A @ (~) @ P2 ) @ S ) ) ) ).

% sfilter.simps(1)
thf(fact_65_smap2__unfold,axiom,
    ! [B: $tType,A: $tType,C: $tType,F3: B > C > A,A3: B,S12: stream @ B,B3: C,S23: stream @ C] :
      ( ( smap2 @ B @ C @ A @ F3 @ ( sCons @ B @ A3 @ S12 ) @ ( sCons @ C @ B3 @ S23 ) )
      = ( sCons @ A @ ( F3 @ A3 @ B3 ) @ ( smap2 @ B @ C @ A @ F3 @ S12 @ S23 ) ) ) ).

% smap2_unfold
thf(fact_66_smap2_Osimps_I2_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,F3: A > B > C,S12: stream @ A,S23: stream @ B] :
      ( ( stl @ C @ ( smap2 @ A @ B @ C @ F3 @ S12 @ S23 ) )
      = ( smap2 @ A @ B @ C @ F3 @ ( stl @ A @ S12 ) @ ( stl @ B @ S23 ) ) ) ).

% smap2.simps(2)
thf(fact_67_smap2_Osimps_I1_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,F3: A > B > C,S12: stream @ A,S23: stream @ B] :
      ( ( shd @ C @ ( smap2 @ A @ B @ C @ F3 @ S12 @ S23 ) )
      = ( F3 @ ( shd @ A @ S12 ) @ ( shd @ B @ S23 ) ) ) ).

% smap2.simps(1)
thf(fact_68_sinterleave__code,axiom,
    ! [A: $tType,X: A,S12: stream @ A,S23: stream @ A] :
      ( ( sinterleave @ A @ ( sCons @ A @ X @ S12 ) @ S23 )
      = ( sCons @ A @ X @ ( sinterleave @ A @ S23 @ S12 ) ) ) ).

% sinterleave_code
thf(fact_69_sinterleave_Osimps_I2_J,axiom,
    ! [A: $tType,S12: stream @ A,S23: stream @ A] :
      ( ( stl @ A @ ( sinterleave @ A @ S12 @ S23 ) )
      = ( sinterleave @ A @ S23 @ ( stl @ A @ S12 ) ) ) ).

% sinterleave.simps(2)
thf(fact_70_sinterleave_Osimps_I1_J,axiom,
    ! [A: $tType,S12: stream @ A,S23: stream @ A] :
      ( ( shd @ A @ ( sinterleave @ A @ S12 @ S23 ) )
      = ( shd @ A @ S12 ) ) ).

% sinterleave.simps(1)
thf(fact_71_sfilter__Stream,axiom,
    ! [A: $tType,P2: A > $o,X: A,S: stream @ A] :
      ( ( ( P2 @ X )
       => ( ( sfilter @ A @ P2 @ ( sCons @ A @ X @ S ) )
          = ( sCons @ A @ X @ ( sfilter @ A @ P2 @ S ) ) ) )
      & ( ~ ( P2 @ X )
       => ( ( sfilter @ A @ P2 @ ( sCons @ A @ X @ S ) )
          = ( sfilter @ A @ P2 @ S ) ) ) ) ).

% sfilter_Stream
thf(fact_72_subI,axiom,
    ! [C: $tType,B: $tType,A: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),A3: A] : ( member @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( F3 @ A3 ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) ) @ ( stream152839592le_sub @ A @ B @ C ) ) ).

% subI
thf(fact_73_insert__absorb2,axiom,
    ! [A: $tType,X: A,A2: set @ A] :
      ( ( insert @ A @ X @ ( insert @ A @ X @ A2 ) )
      = ( insert @ A @ X @ A2 ) ) ).

% insert_absorb2
thf(fact_74_insert__iff,axiom,
    ! [A: $tType,A3: A,B3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ ( insert @ A @ B3 @ A2 ) )
      = ( ( A3 = B3 )
        | ( member @ A @ A3 @ A2 ) ) ) ).

% insert_iff
thf(fact_75_insertCI,axiom,
    ! [A: $tType,A3: A,B4: set @ A,B3: A] :
      ( ( ~ ( member @ A @ A3 @ B4 )
       => ( A3 = B3 ) )
     => ( member @ A @ A3 @ ( insert @ A @ B3 @ B4 ) ) ) ).

% insertCI
thf(fact_76_comp__apply,axiom,
    ! [C: $tType,A: $tType,B: $tType] :
      ( ( comp @ B @ A @ C )
      = ( ^ [F2: B > A,G4: C > B,X6: C] : ( F2 @ ( G4 @ X6 ) ) ) ) ).

% comp_apply
thf(fact_77_old_Oprod_Oinject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A7 @ B5 ) )
      = ( ( A3 = A7 )
        & ( B3 = B5 ) ) ) ).

% old.prod.inject
thf(fact_78_prod_Oinject,axiom,
    ! [A: $tType,B: $tType,X1: A,X2: B,Y1: A,Y22: B] :
      ( ( ( product_Pair @ A @ B @ X1 @ X2 )
        = ( product_Pair @ A @ B @ Y1 @ Y22 ) )
      = ( ( X1 = Y1 )
        & ( X2 = Y22 ) ) ) ).

% prod.inject
thf(fact_79_szip_Ocode,axiom,
    ! [B: $tType,A: $tType] :
      ( ( szip @ A @ B )
      = ( ^ [S1: stream @ A,S22: stream @ B] : ( sCons @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ ( shd @ A @ S1 ) @ ( shd @ B @ S22 ) ) @ ( szip @ A @ B @ ( stl @ A @ S1 ) @ ( stl @ B @ S22 ) ) ) ) ) ).

% szip.code
thf(fact_80_szip_Osimps_I2_J,axiom,
    ! [A: $tType,B: $tType,S12: stream @ A,S23: stream @ B] :
      ( ( stl @ ( product_prod @ A @ B ) @ ( szip @ A @ B @ S12 @ S23 ) )
      = ( szip @ A @ B @ ( stl @ A @ S12 ) @ ( stl @ B @ S23 ) ) ) ).

% szip.simps(2)
thf(fact_81_surj__pair,axiom,
    ! [A: $tType,B: $tType,P3: product_prod @ A @ B] :
    ? [X4: A,Y2: B] :
      ( P3
      = ( product_Pair @ A @ B @ X4 @ Y2 ) ) ).

% surj_pair
thf(fact_82_prod__cases,axiom,
    ! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,P3: product_prod @ A @ B] :
      ( ! [A4: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A4 @ B2 ) )
     => ( P2 @ P3 ) ) ).

% prod_cases
thf(fact_83_Pair__inject,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B] :
      ( ( ( product_Pair @ A @ B @ A3 @ B3 )
        = ( product_Pair @ A @ B @ A7 @ B5 ) )
     => ~ ( ( A3 = A7 )
         => ( B3 != B5 ) ) ) ).

% Pair_inject
thf(fact_84_prod__cases3,axiom,
    ! [A: $tType,B: $tType,C: $tType,Y: product_prod @ A @ ( product_prod @ B @ C )] :
      ~ ! [A4: A,B2: B,C2: C] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B2 @ C2 ) ) ) ).

% prod_cases3
thf(fact_85_prod__cases4,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ~ ! [A4: A,B2: B,C2: C,D2: D] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) ) ).

% prod_cases4
thf(fact_86_prod__cases5,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ~ ! [A4: A,B2: B,C2: C,D2: D,E3: E] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C2 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) ) ).

% prod_cases5
thf(fact_87_prod__cases6,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
      ~ ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E3 @ F4 ) ) ) ) ) ) ).

% prod_cases6
thf(fact_88_prod__cases7,axiom,
    ! [A: $tType,B: $tType,C: $tType,D: $tType,E: $tType,F: $tType,G: $tType,Y: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
      ~ ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F,G2: G] :
          ( Y
         != ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E3 @ ( product_Pair @ F @ G @ F4 @ G2 ) ) ) ) ) ) ) ).

% prod_cases7
thf(fact_89_prod__induct3,axiom,
    ! [C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ C ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ C )] :
      ( ! [A4: A,B2: B,C2: C] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ C ) @ A4 @ ( product_Pair @ B @ C @ B2 @ C2 ) ) )
     => ( P2 @ X ) ) ).

% prod_induct3
thf(fact_90_prod__induct4,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) )] :
      ( ! [A4: A,B2: B,C2: C,D2: D] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ D ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ D ) @ B2 @ ( product_Pair @ C @ D @ C2 @ D2 ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct4
thf(fact_91_prod__induct5,axiom,
    ! [E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) )] :
      ( ! [A4: A,B2: B,C2: C,D2: D,E3: E] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ E ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ E ) @ C2 @ ( product_Pair @ D @ E @ D2 @ E3 ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct5
thf(fact_92_prod__induct6,axiom,
    ! [F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) )] :
      ( ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ F ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ F ) @ D2 @ ( product_Pair @ E @ F @ E3 @ F4 ) ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct6
thf(fact_93_prod__induct7,axiom,
    ! [G: $tType,F: $tType,E: $tType,D: $tType,C: $tType,B: $tType,A: $tType,P2: ( product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) ) > $o,X: product_prod @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) )] :
      ( ! [A4: A,B2: B,C2: C,D2: D,E3: E,F4: F,G2: G] : ( P2 @ ( product_Pair @ A @ ( product_prod @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) ) @ A4 @ ( product_Pair @ B @ ( product_prod @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) ) @ B2 @ ( product_Pair @ C @ ( product_prod @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) ) @ C2 @ ( product_Pair @ D @ ( product_prod @ E @ ( product_prod @ F @ G ) ) @ D2 @ ( product_Pair @ E @ ( product_prod @ F @ G ) @ E3 @ ( product_Pair @ F @ G @ F4 @ G2 ) ) ) ) ) ) )
     => ( P2 @ X ) ) ).

% prod_induct7
thf(fact_94_old_Oprod_Oexhaust,axiom,
    ! [A: $tType,B: $tType,Y: product_prod @ A @ B] :
      ~ ! [A4: A,B2: B] :
          ( Y
         != ( product_Pair @ A @ B @ A4 @ B2 ) ) ).

% old.prod.exhaust
thf(fact_95_old_Oprod_Oinducts,axiom,
    ! [B: $tType,A: $tType,P2: ( product_prod @ A @ B ) > $o,Prod: product_prod @ A @ B] :
      ( ! [A4: A,B2: B] : ( P2 @ ( product_Pair @ A @ B @ A4 @ B2 ) )
     => ( P2 @ Prod ) ) ).

% old.prod.inducts
thf(fact_96_comp__def,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( comp @ B @ C @ A )
      = ( ^ [F2: B > C,G4: A > B,X6: A] : ( F2 @ ( G4 @ X6 ) ) ) ) ).

% comp_def
thf(fact_97_comp__assoc,axiom,
    ! [B: $tType,D: $tType,C: $tType,A: $tType,F3: D > B,G3: C > D,H: A > C] :
      ( ( comp @ C @ B @ A @ ( comp @ D @ B @ C @ F3 @ G3 ) @ H )
      = ( comp @ D @ B @ A @ F3 @ ( comp @ C @ D @ A @ G3 @ H ) ) ) ).

% comp_assoc
thf(fact_98_comp__eq__dest,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A3: C > B,B3: A > C,C3: D > B,D3: A > D,V: A] :
      ( ( ( comp @ C @ B @ A @ A3 @ B3 )
        = ( comp @ D @ B @ A @ C3 @ D3 ) )
     => ( ( A3 @ ( B3 @ V ) )
        = ( C3 @ ( D3 @ V ) ) ) ) ).

% comp_eq_dest
thf(fact_99_comp__eq__elim,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,A3: C > B,B3: A > C,C3: D > B,D3: A > D] :
      ( ( ( comp @ C @ B @ A @ A3 @ B3 )
        = ( comp @ D @ B @ A @ C3 @ D3 ) )
     => ! [V2: A] :
          ( ( A3 @ ( B3 @ V2 ) )
          = ( C3 @ ( D3 @ V2 ) ) ) ) ).

% comp_eq_elim
thf(fact_100_comp__eq__dest__lhs,axiom,
    ! [C: $tType,B: $tType,A: $tType,A3: C > B,B3: A > C,C3: A > B,V: A] :
      ( ( ( comp @ C @ B @ A @ A3 @ B3 )
        = C3 )
     => ( ( A3 @ ( B3 @ V ) )
        = ( C3 @ V ) ) ) ).

% comp_eq_dest_lhs
thf(fact_101_insertE,axiom,
    ! [A: $tType,A3: A,B3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ ( insert @ A @ B3 @ A2 ) )
     => ( ( A3 != B3 )
       => ( member @ A @ A3 @ A2 ) ) ) ).

% insertE
thf(fact_102_insertI1,axiom,
    ! [A: $tType,A3: A,B4: set @ A] : ( member @ A @ A3 @ ( insert @ A @ A3 @ B4 ) ) ).

% insertI1
thf(fact_103_insertI2,axiom,
    ! [A: $tType,A3: A,B4: set @ A,B3: A] :
      ( ( member @ A @ A3 @ B4 )
     => ( member @ A @ A3 @ ( insert @ A @ B3 @ B4 ) ) ) ).

% insertI2
thf(fact_104_Set_Oset__insert,axiom,
    ! [A: $tType,X: A,A2: set @ A] :
      ( ( member @ A @ X @ A2 )
     => ~ ! [B6: set @ A] :
            ( ( A2
              = ( insert @ A @ X @ B6 ) )
           => ( member @ A @ X @ B6 ) ) ) ).

% Set.set_insert
thf(fact_105_insert__ident,axiom,
    ! [A: $tType,X: A,A2: set @ A,B4: set @ A] :
      ( ~ ( member @ A @ X @ A2 )
     => ( ~ ( member @ A @ X @ B4 )
       => ( ( ( insert @ A @ X @ A2 )
            = ( insert @ A @ X @ B4 ) )
          = ( A2 = B4 ) ) ) ) ).

% insert_ident
thf(fact_106_insert__absorb,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ A2 )
     => ( ( insert @ A @ A3 @ A2 )
        = A2 ) ) ).

% insert_absorb
thf(fact_107_insert__eq__iff,axiom,
    ! [A: $tType,A3: A,A2: set @ A,B3: A,B4: set @ A] :
      ( ~ ( member @ A @ A3 @ A2 )
     => ( ~ ( member @ A @ B3 @ B4 )
       => ( ( ( insert @ A @ A3 @ A2 )
            = ( insert @ A @ B3 @ B4 ) )
          = ( ( ( A3 = B3 )
             => ( A2 = B4 ) )
            & ( ( A3 != B3 )
             => ? [C4: set @ A] :
                  ( ( A2
                    = ( insert @ A @ B3 @ C4 ) )
                  & ~ ( member @ A @ B3 @ C4 )
                  & ( B4
                    = ( insert @ A @ A3 @ C4 ) )
                  & ~ ( member @ A @ A3 @ C4 ) ) ) ) ) ) ) ).

% insert_eq_iff
thf(fact_108_insert__commute,axiom,
    ! [A: $tType,X: A,Y: A,A2: set @ A] :
      ( ( insert @ A @ X @ ( insert @ A @ Y @ A2 ) )
      = ( insert @ A @ Y @ ( insert @ A @ X @ A2 ) ) ) ).

% insert_commute
thf(fact_109_mk__disjoint__insert,axiom,
    ! [A: $tType,A3: A,A2: set @ A] :
      ( ( member @ A @ A3 @ A2 )
     => ? [B6: set @ A] :
          ( ( A2
            = ( insert @ A @ A3 @ B6 ) )
          & ~ ( member @ A @ A3 @ B6 ) ) ) ).

% mk_disjoint_insert
thf(fact_110_szip__unfold,axiom,
    ! [A: $tType,B: $tType,A3: A,S12: stream @ A,B3: B,S23: stream @ B] :
      ( ( szip @ A @ B @ ( sCons @ A @ A3 @ S12 ) @ ( sCons @ B @ B3 @ S23 ) )
      = ( sCons @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ ( szip @ A @ B @ S12 @ S23 ) ) ) ).

% szip_unfold
thf(fact_111_szip_Osimps_I1_J,axiom,
    ! [A: $tType,B: $tType,S12: stream @ A,S23: stream @ B] :
      ( ( shd @ ( product_prod @ A @ B ) @ ( szip @ A @ B @ S12 @ S23 ) )
      = ( product_Pair @ A @ B @ ( shd @ A @ S12 ) @ ( shd @ B @ S23 ) ) ) ).

% szip.simps(1)
thf(fact_112_sp_092_060_094sub_062_092_060mu_062__comp2R_Osimps_I2_J,axiom,
    ! [E: $tType,F: $tType,C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ B @ C @ ( stream1273403375_sp_nu @ B @ C ) ) > ( stream901396144_sp_mu @ D @ E @ F ),H: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) )] :
      ( ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) @ H ) )
      = ( stream1294929701mu_Get @ D @ E @ F @ ( comp @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ B @ C ) ) @ ( stream901396144_sp_mu @ D @ E @ F ) @ D @ ( stream1312210288comp2R @ A @ B @ C @ D @ E @ F @ F3 ) @ H ) ) ) ).

% sp\<^sub>\<mu>_comp2R.simps(2)
thf(fact_113_old_Oprod_Orec,axiom,
    ! [A: $tType,T: $tType,B: $tType,F1: A > B > T,A3: A,B3: B] :
      ( ( product_rec_prod @ A @ B @ T @ F1 @ ( product_Pair @ A @ B @ A3 @ B3 ) )
      = ( F1 @ A3 @ B3 ) ) ).

% old.prod.rec
thf(fact_114_sp_092_060_094sub_062_092_060mu_062__comp_Opinduct,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,A0: stream901396144_sp_mu @ A @ B @ C,A1: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),P2: ( stream901396144_sp_mu @ A @ B @ C ) > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) > $o] :
      ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ A0 @ A1 ) )
     => ( ! [B2: B,Sp: C,Fsp: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
            ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
           => ( P2 @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Fsp ) )
       => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
              ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) )
             => ( ( P2 @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) )
               => ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) ) )
         => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C ),G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
                ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) )
               => ( ! [X5: D] : ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ X5 ) )
                 => ( P2 @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) )
           => ( P2 @ A0 @ A1 ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.pinduct
thf(fact_115_internal__case__prod__conv,axiom,
    ! [B: $tType,A: $tType,C: $tType,C3: B > C > A,A3: B,B3: C] :
      ( ( produc2004651681e_prod @ B @ C @ A @ C3 @ ( product_Pair @ B @ C @ A3 @ B3 ) )
      = ( C3 @ A3 @ B3 ) ) ).

% internal_case_prod_conv
thf(fact_116_sp_092_060_094sub_062_092_060mu_062__comp2_Osimps_I2_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,F3: D > ( stream901396144_sp_mu @ D @ A @ B ),Fsp2: stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D )] :
      ( ( stream967973730_comp2 @ D @ A @ B @ C @ ( stream1294929701mu_Get @ D @ A @ B @ F3 ) @ Fsp2 )
      = ( stream1312210288comp2R @ D @ C @ D @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) @ ( comp @ ( stream901396144_sp_mu @ D @ A @ B ) @ ( ( stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D ) ) > ( stream901396144_sp_mu @ C @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) ) ) @ D @ ( stream967973730_comp2 @ D @ A @ B @ C ) @ F3 ) @ Fsp2 ) ) ).

% sp\<^sub>\<mu>_comp2.simps(2)
thf(fact_117_sdrop__while_Oraw__induct,axiom,
    ! [A: $tType,Pa: ( product_prod @ ( A > $o ) @ ( stream @ A ) ) > ( stream @ A ) > $o,P2: A > $o,S: stream @ A,Y: stream @ A] :
      ( ! [Sdrop_while: ( A > $o ) > ( stream @ A ) > ( stream @ A )] :
          ( ! [S5: A > $o,B7: stream @ A] :
              ( ( ( Sdrop_while @ S5 @ B7 )
               != ( undefined @ ( stream @ A ) ) )
             => ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ S5 @ B7 ) @ ( Sdrop_while @ S5 @ B7 ) ) )
         => ! [P4: A > $o,S4: stream @ A,Pa2: stream @ A] :
              ( ( ( ( P4 @ ( shd @ A @ S4 ) )
                 => ( ( Sdrop_while @ P4 @ ( stl @ A @ S4 ) )
                    = Pa2 ) )
                & ( ~ ( P4 @ ( shd @ A @ S4 ) )
                 => ( S4 = Pa2 ) ) )
             => ( ( Pa2
                 != ( undefined @ ( stream @ A ) ) )
               => ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ P4 @ S4 ) @ Pa2 ) ) ) )
     => ( ( ( sdrop_while @ A @ P2 @ S )
          = Y )
       => ( ( Y
           != ( undefined @ ( stream @ A ) ) )
         => ( Pa @ ( product_Pair @ ( A > $o ) @ ( stream @ A ) @ P2 @ S ) @ Y ) ) ) ) ).

% sdrop_while.raw_induct
thf(fact_118_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I2_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),B3: A,Sp2: stream1273403375_sp_nu @ D @ A] :
      ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) ) )
     => ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B3 @ Sp2 ) )
        = ( stream1747196112u_comp @ A @ B @ C @ D @ ( F3 @ B3 ) @ ( stream1200245950nu_out @ D @ A @ Sp2 ) ) ) ) ).

% sp\<^sub>\<mu>_comp.psimps(2)
thf(fact_119_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I1_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,B3: B,Sp2: C,Fsp2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
      ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 ) )
     => ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 )
        = ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B3 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp2 @ ( stream1686501333_nu_In @ D @ A @ Fsp2 ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.psimps(1)
thf(fact_120_run_092_060_094sub_062_092_060nu_062__sp_092_060_094sub_062_092_060nu_062__comp,axiom,
    ! [B: $tType,C: $tType,A: $tType,Sp2: stream1273403375_sp_nu @ C @ B,Sp3: stream1273403375_sp_nu @ A @ C] :
      ( ( stream377071682run_nu @ A @ B @ ( stream1967106959u_comp @ C @ B @ A @ Sp2 @ Sp3 ) )
      = ( comp @ ( stream @ C ) @ ( stream @ B ) @ ( stream @ A ) @ ( stream377071682run_nu @ C @ B @ Sp2 ) @ ( stream377071682run_nu @ A @ C @ Sp3 ) ) ) ).

% run\<^sub>\<nu>_sp\<^sub>\<nu>_comp
thf(fact_121_stream_Omap__o__corec,axiom,
    ! [A: $tType,B: $tType,C: $tType,F3: A > B,G3: C > A,Ga: C > $o,Gb: C > ( stream @ A ),Gc: C > C] :
      ( ( comp @ ( stream @ A ) @ ( stream @ B ) @ C @ ( smap @ A @ B @ F3 ) @ ( corec_stream @ C @ A @ G3 @ Ga @ Gb @ Gc ) )
      = ( corec_stream @ C @ B @ ( comp @ A @ B @ C @ F3 @ G3 ) @ Ga @ ( comp @ ( stream @ A ) @ ( stream @ B ) @ C @ ( smap @ A @ B @ F3 ) @ Gb ) @ Gc ) ) ).

% stream.map_o_corec
thf(fact_122_accp__induct__rule,axiom,
    ! [A: $tType,R2: A > A > $o,A3: A,P2: A > $o] :
      ( ( accp @ A @ R2 @ A3 )
     => ( ! [X4: A] :
            ( ( accp @ A @ R2 @ X4 )
           => ( ! [Y3: A] :
                  ( ( R2 @ Y3 @ X4 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ A3 ) ) ) ).

% accp_induct_rule
thf(fact_123_sp_092_060_094sub_062_092_060nu_062_Oinject,axiom,
    ! [B: $tType,A: $tType,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ),Ya: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
      ( ( ( stream1686501333_nu_In @ A @ B @ X )
        = ( stream1686501333_nu_In @ A @ B @ Ya ) )
      = ( X = Ya ) ) ).

% sp\<^sub>\<nu>.inject
thf(fact_124_sp_092_060_094sub_062_092_060nu_062_Ocollapse,axiom,
    ! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B] :
      ( ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) )
      = Sp_nu ) ).

% sp\<^sub>\<nu>.collapse
thf(fact_125_sp_092_060_094sub_062_092_060nu_062_Oexhaust,axiom,
    ! [B: $tType,A: $tType,Y: stream1273403375_sp_nu @ A @ B] :
      ~ ! [X4: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
          ( Y
         != ( stream1686501333_nu_In @ A @ B @ X4 ) ) ).

% sp\<^sub>\<nu>.exhaust
thf(fact_126_stream_Ocorec__disc,axiom,
    ! [A: $tType,C: $tType] :
      ( ( corec_stream @ C @ A )
      = ( corec_stream @ C @ A ) ) ).

% stream.corec_disc
thf(fact_127_sp_092_060_094sub_062_092_060nu_062_Osel,axiom,
    ! [B: $tType,A: $tType,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
      ( ( stream1200245950nu_out @ A @ B @ ( stream1686501333_nu_In @ A @ B @ X ) )
      = X ) ).

% sp\<^sub>\<nu>.sel
thf(fact_128_sp_092_060_094sub_062_092_060nu_062_Oexhaust__sel,axiom,
    ! [B: $tType,A: $tType,Sp_nu: stream1273403375_sp_nu @ A @ B] :
      ( Sp_nu
      = ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ).

% sp\<^sub>\<nu>.exhaust_sel
thf(fact_129_stream_Ocorec__code,axiom,
    ! [A: $tType,C: $tType] :
      ( ( corec_stream @ C @ A )
      = ( ^ [G1: C > A,Q2: C > $o,G21: C > ( stream @ A ),G22: C > C,A5: C] : ( sCons @ A @ ( G1 @ A5 ) @ ( if @ ( stream @ A ) @ ( Q2 @ A5 ) @ ( G21 @ A5 ) @ ( corec_stream @ C @ A @ G1 @ Q2 @ G21 @ G22 @ ( G22 @ A5 ) ) ) ) ) ) ).

% stream.corec_code
thf(fact_130_stream_Ocorec__sel_I2_J,axiom,
    ! [A: $tType,C: $tType,Q22: C > $o,A3: C,G12: C > A,G212: C > ( stream @ A ),G222: C > C] :
      ( ( ( Q22 @ A3 )
       => ( ( stl @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
          = ( G212 @ A3 ) ) )
      & ( ~ ( Q22 @ A3 )
       => ( ( stl @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
          = ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ ( G222 @ A3 ) ) ) ) ) ).

% stream.corec_sel(2)
thf(fact_131_stream_Ocorec__sel_I1_J,axiom,
    ! [A: $tType,C: $tType,G12: C > A,Q22: C > $o,G212: C > ( stream @ A ),G222: C > C,A3: C] :
      ( ( shd @ A @ ( corec_stream @ C @ A @ G12 @ Q22 @ G212 @ G222 @ A3 ) )
      = ( G12 @ A3 ) ) ).

% stream.corec_sel(1)
thf(fact_132_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I1_J,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,B3: B,Sp2: C,Fsp2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A )] :
      ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1370332830mu_Put @ B @ C @ A @ B3 @ Sp2 ) @ Fsp2 )
      = ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B3 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp2 @ ( stream1686501333_nu_In @ D @ A @ Fsp2 ) ) ) ) ).

% sp\<^sub>\<mu>_comp.simps(1)
thf(fact_133_sp_092_060_094sub_062_092_060mu_062__comp2_Osimps_I1_J,axiom,
    ! [A: $tType,B: $tType,D: $tType,C: $tType,B3: A,Sp2: B,Fsp2: stream901396144_sp_mu @ C @ D @ ( stream1273403375_sp_nu @ C @ D )] :
      ( ( stream967973730_comp2 @ D @ A @ B @ C @ ( stream1370332830mu_Put @ A @ B @ D @ B3 @ Sp2 ) @ Fsp2 )
      = ( stream1370332830mu_Put @ A @ ( product_prod @ B @ ( stream1273403375_sp_nu @ C @ D ) ) @ C @ B3 @ ( product_Pair @ B @ ( stream1273403375_sp_nu @ C @ D ) @ Sp2 @ ( stream1686501333_nu_In @ C @ D @ Fsp2 ) ) ) ) ).

% sp\<^sub>\<mu>_comp2.simps(1)
thf(fact_134_accp_Ocases,axiom,
    ! [A: $tType,R2: A > A > $o,A3: A] :
      ( ( accp @ A @ R2 @ A3 )
     => ! [Y3: A] :
          ( ( R2 @ Y3 @ A3 )
         => ( accp @ A @ R2 @ Y3 ) ) ) ).

% accp.cases
thf(fact_135_accp_Osimps,axiom,
    ! [A: $tType] :
      ( ( accp @ A )
      = ( ^ [R3: A > A > $o,A5: A] :
          ? [X6: A] :
            ( ( A5 = X6 )
            & ! [Y4: A] :
                ( ( R3 @ Y4 @ X6 )
               => ( accp @ A @ R3 @ Y4 ) ) ) ) ) ).

% accp.simps
thf(fact_136_accp_Ointros,axiom,
    ! [A: $tType,R2: A > A > $o,X: A] :
      ( ! [Y2: A] :
          ( ( R2 @ Y2 @ X )
         => ( accp @ A @ R2 @ Y2 ) )
     => ( accp @ A @ R2 @ X ) ) ).

% accp.intros
thf(fact_137_accp__induct,axiom,
    ! [A: $tType,R2: A > A > $o,A3: A,P2: A > $o] :
      ( ( accp @ A @ R2 @ A3 )
     => ( ! [X4: A] :
            ( ( accp @ A @ R2 @ X4 )
           => ( ! [Y3: A] :
                  ( ( R2 @ Y3 @ X4 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ A3 ) ) ) ).

% accp_induct
thf(fact_138_accp_Oinducts,axiom,
    ! [A: $tType,R2: A > A > $o,X: A,P2: A > $o] :
      ( ( accp @ A @ R2 @ X )
     => ( ! [X4: A] :
            ( ! [Y3: A] :
                ( ( R2 @ Y3 @ X4 )
               => ( accp @ A @ R2 @ Y3 ) )
           => ( ! [Y3: A] :
                  ( ( R2 @ Y3 @ X4 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ X ) ) ) ).

% accp.inducts
thf(fact_139_accp__downward,axiom,
    ! [A: $tType,R2: A > A > $o,B3: A,A3: A] :
      ( ( accp @ A @ R2 @ B3 )
     => ( ( R2 @ A3 @ B3 )
       => ( accp @ A @ R2 @ A3 ) ) ) ).

% accp_downward
thf(fact_140_not__accp__down,axiom,
    ! [A: $tType,R: A > A > $o,X: A] :
      ( ~ ( accp @ A @ R @ X )
     => ~ ! [Z: A] :
            ( ( R @ Z @ X )
           => ( accp @ A @ R @ Z ) ) ) ).

% not_accp_down
thf(fact_141_sp_092_060_094sub_062_092_060mu_062__comp_Opelims,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,X: stream901396144_sp_mu @ A @ B @ C,Xa2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),Y: stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )] :
      ( ( ( stream1747196112u_comp @ A @ B @ C @ D @ X @ Xa2 )
        = Y )
     => ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ X @ Xa2 ) )
       => ( ! [B2: B,Sp: C] :
              ( ( X
                = ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) )
             => ( ( Y
                  = ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B2 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp @ ( stream1686501333_nu_In @ D @ A @ Xa2 ) ) ) )
               => ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) @ Xa2 ) ) ) )
         => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
                ( ( X
                  = ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
               => ! [B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
                    ( ( Xa2
                      = ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) )
                   => ( ( Y
                        = ( stream1747196112u_comp @ A @ B @ C @ D @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) ) )
                     => ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) ) ) ) ) )
           => ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
                  ( ( X
                    = ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
                 => ! [G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
                      ( ( Xa2
                        = ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) )
                     => ( ( Y
                          = ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
                            @ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ A5 ) ) ) )
                       => ~ ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) ) ) ) ) ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.pelims
thf(fact_142_in__lex__prod,axiom,
    ! [A: $tType,B: $tType,A3: A,B3: B,A7: A,B5: B,R2: set @ ( product_prod @ A @ A ),S: set @ ( product_prod @ B @ B )] :
      ( ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ ( product_Pair @ A @ B @ A7 @ B5 ) ) @ ( lex_prod @ A @ B @ R2 @ S ) )
      = ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A3 @ A7 ) @ R2 )
        | ( ( A3 = A7 )
          & ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ B3 @ B5 ) @ S ) ) ) ) ).

% in_lex_prod
thf(fact_143_sp_092_060_094sub_062_092_060mu_062__comp_Oelims,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,X: stream901396144_sp_mu @ A @ B @ C,Xa2: stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ),Y: stream901396144_sp_mu @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )] :
      ( ( ( stream1747196112u_comp @ A @ B @ C @ D @ X @ Xa2 )
        = Y )
     => ( ! [B2: B,Sp: C] :
            ( ( X
              = ( stream1370332830mu_Put @ B @ C @ A @ B2 @ Sp ) )
           => ( Y
             != ( stream1370332830mu_Put @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) ) @ D @ B2 @ ( product_Pair @ C @ ( stream1273403375_sp_nu @ D @ A ) @ Sp @ ( stream1686501333_nu_In @ D @ A @ Xa2 ) ) ) ) )
       => ( ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
              ( ( X
                = ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
             => ! [B2: A,Sp: stream1273403375_sp_nu @ D @ A] :
                  ( ( Xa2
                    = ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ D @ A ) @ D @ B2 @ Sp ) )
                 => ( Y
                   != ( stream1747196112u_comp @ A @ B @ C @ D @ ( F4 @ B2 ) @ ( stream1200245950nu_out @ D @ A @ Sp ) ) ) ) )
         => ~ ! [F4: A > ( stream901396144_sp_mu @ A @ B @ C )] :
                ( ( X
                  = ( stream1294929701mu_Get @ A @ B @ C @ F4 ) )
               => ! [G2: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
                    ( ( Xa2
                      = ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G2 ) )
                   => ( Y
                     != ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
                        @ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F4 ) @ ( G2 @ A5 ) ) ) ) ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.elims
thf(fact_144_sp_092_060_094sub_062_092_060nu_062_Osplit__sel__asm,axiom,
    ! [C: $tType,B: $tType,A: $tType,P2: C > $o,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
      ( ( P2 @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
      = ( ~ ( ( Sp_nu
              = ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) )
            & ~ ( P2 @ ( F3 @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ) ) ) ).

% sp\<^sub>\<nu>.split_sel_asm
thf(fact_145_smap__smap2,axiom,
    ! [C: $tType,A: $tType,B: $tType,D: $tType,F3: B > A,G3: C > D > B,S12: stream @ C,S23: stream @ D] :
      ( ( smap @ B @ A @ F3 @ ( smap2 @ C @ D @ B @ G3 @ S12 @ S23 ) )
      = ( smap2 @ C @ D @ A
        @ ^ [X6: C,Y4: D] : ( F3 @ ( G3 @ X6 @ Y4 ) )
        @ S12
        @ S23 ) ) ).

% smap_smap2
thf(fact_146_insert__Collect,axiom,
    ! [A: $tType,A3: A,P2: A > $o] :
      ( ( insert @ A @ A3 @ ( collect @ A @ P2 ) )
      = ( collect @ A
        @ ^ [U: A] :
            ( ( U != A3 )
           => ( P2 @ U ) ) ) ) ).

% insert_Collect
thf(fact_147_insert__compr,axiom,
    ! [A: $tType] :
      ( ( insert @ A )
      = ( ^ [A5: A,B8: set @ A] :
            ( collect @ A
            @ ^ [X6: A] :
                ( ( X6 = A5 )
                | ( member @ A @ X6 @ B8 ) ) ) ) ) ).

% insert_compr
thf(fact_148_sp_092_060_094sub_062_092_060nu_062_Ocase__distrib,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,H: C > D,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
      ( ( H @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
      = ( stream1502363800_sp_nu @ A @ B @ D
        @ ^ [X6: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] : ( H @ ( F3 @ X6 ) )
        @ Sp_nu ) ) ).

% sp\<^sub>\<nu>.case_distrib
thf(fact_149_stream_Ocase__distrib,axiom,
    ! [B: $tType,C: $tType,A: $tType,H: B > C,F3: A > ( stream @ A ) > B,Stream: stream @ A] :
      ( ( H @ ( case_stream @ A @ B @ F3 @ Stream ) )
      = ( case_stream @ A @ C
        @ ^ [X13: A,X24: stream @ A] : ( H @ ( F3 @ X13 @ X24 ) )
        @ Stream ) ) ).

% stream.case_distrib
thf(fact_150_out__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( stream1200245950nu_out @ A @ B )
      = ( stream1502363800_sp_nu @ A @ B @ ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) )
        @ ^ [X6: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] : X6 ) ) ).

% out_def
thf(fact_151_stream_Omap__ident,axiom,
    ! [A: $tType,T2: stream @ A] :
      ( ( smap @ A @ A
        @ ^ [X6: A] : X6
        @ T2 )
      = T2 ) ).

% stream.map_ident
thf(fact_152_shd__def,axiom,
    ! [A: $tType] :
      ( ( shd @ A )
      = ( case_stream @ A @ A
        @ ^ [X13: A,X24: stream @ A] : X13 ) ) ).

% shd_def
thf(fact_153_stl__def,axiom,
    ! [A: $tType] :
      ( ( stl @ A )
      = ( case_stream @ A @ ( stream @ A )
        @ ^ [X13: A,X24: stream @ A] : X24 ) ) ).

% stl_def
thf(fact_154_sp_092_060_094sub_062_092_060mu_062__comp_Osimps_I3_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),G3: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
      ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) )
      = ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
        @ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( G3 @ A5 ) ) ) ) ).

% sp\<^sub>\<mu>_comp.simps(3)
thf(fact_155_copy_Osimps,axiom,
    ! [A: $tType] :
      ( ( stream1200245950nu_out @ A @ A @ ( stream2017582925e_copy @ A ) )
      = ( stream1294929701mu_Get @ A @ A @ ( stream1273403375_sp_nu @ A @ A )
        @ ^ [A5: A] : ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ A @ A ) @ A @ A5 @ ( stream2017582925e_copy @ A ) ) ) ) ).

% copy.simps
thf(fact_156_copy_Ocode,axiom,
    ! [A: $tType] :
      ( ( stream2017582925e_copy @ A )
      = ( stream1686501333_nu_In @ A @ A
        @ ( stream1294929701mu_Get @ A @ A @ ( stream1273403375_sp_nu @ A @ A )
          @ ^ [A5: A] : ( stream1370332830mu_Put @ A @ ( stream1273403375_sp_nu @ A @ A ) @ A @ A5 @ ( stream2017582925e_copy @ A ) ) ) ) ) ).

% copy.code
thf(fact_157_sp_092_060_094sub_062_092_060nu_062_Ocase__eq__if,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( stream1502363800_sp_nu @ A @ B @ C )
      = ( ^ [F2: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu3: stream1273403375_sp_nu @ A @ B] : ( F2 @ ( stream1200245950nu_out @ A @ B @ Sp_nu3 ) ) ) ) ).

% sp\<^sub>\<nu>.case_eq_if
thf(fact_158_sp_092_060_094sub_062_092_060nu_062_Ocase,axiom,
    ! [C: $tType,B: $tType,A: $tType,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,X: stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B )] :
      ( ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ ( stream1686501333_nu_In @ A @ B @ X ) )
      = ( F3 @ X ) ) ).

% sp\<^sub>\<nu>.case
thf(fact_159_sp_092_060_094sub_062_092_060mu_062__comp_Opsimps_I3_J,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,F3: A > ( stream901396144_sp_mu @ A @ B @ C ),G3: D > ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) )] :
      ( ( accp @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) ) @ ( stream592421929mp_rel @ A @ B @ C @ D ) @ ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) ) @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) ) )
     => ( ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( stream1294929701mu_Get @ D @ A @ ( stream1273403375_sp_nu @ D @ A ) @ G3 ) )
        = ( stream1294929701mu_Get @ D @ B @ ( product_prod @ C @ ( stream1273403375_sp_nu @ D @ A ) )
          @ ^ [A5: D] : ( stream1747196112u_comp @ A @ B @ C @ D @ ( stream1294929701mu_Get @ A @ B @ C @ F3 ) @ ( G3 @ A5 ) ) ) ) ) ).

% sp\<^sub>\<mu>_comp.psimps(3)
thf(fact_160_sp_092_060_094sub_062_092_060nu_062_Osplit__sel,axiom,
    ! [C: $tType,B: $tType,A: $tType,P2: C > $o,F3: ( stream901396144_sp_mu @ A @ B @ ( stream1273403375_sp_nu @ A @ B ) ) > C,Sp_nu: stream1273403375_sp_nu @ A @ B] :
      ( ( P2 @ ( stream1502363800_sp_nu @ A @ B @ C @ F3 @ Sp_nu ) )
      = ( ( Sp_nu
          = ( stream1686501333_nu_In @ A @ B @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) )
       => ( P2 @ ( F3 @ ( stream1200245950nu_out @ A @ B @ Sp_nu ) ) ) ) ) ).

% sp\<^sub>\<nu>.split_sel
thf(fact_161_sp_092_060_094sub_062_092_060mu_062_Osimps_I7_J,axiom,
    ! [G: $tType,C: $tType,B: $tType,A: $tType,F1: ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G,F22: B > C > G,X1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
      ( ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ ( stream1294929701mu_Get @ A @ B @ C @ X1 ) )
      = ( F1
        @ ( comp @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) @ A
          @ ^ [Sp_mu: stream901396144_sp_mu @ A @ B @ C] : ( product_Pair @ ( stream901396144_sp_mu @ A @ B @ C ) @ G @ Sp_mu @ ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ Sp_mu ) )
          @ X1 ) ) ) ).

% sp\<^sub>\<mu>.simps(7)
thf(fact_162_conj__comp__iff,axiom,
    ! [B: $tType,A: $tType,P2: B > $o,Q: B > $o,G3: A > B] :
      ( ( comp @ B @ $o @ A
        @ ^ [X6: B] :
            ( ( P2 @ X6 )
            & ( Q @ X6 ) )
        @ G3 )
      = ( ^ [X6: A] :
            ( ( comp @ B @ $o @ A @ P2 @ G3 @ X6 )
            & ( comp @ B @ $o @ A @ Q @ G3 @ X6 ) ) ) ) ).

% conj_comp_iff
thf(fact_163_fun_Omap__ident,axiom,
    ! [A: $tType,D: $tType,T2: D > A] :
      ( ( comp @ A @ A @ D
        @ ^ [X6: A] : X6
        @ T2 )
      = T2 ) ).

% fun.map_ident
thf(fact_164_sp_092_060_094sub_062_092_060mu_062_Osimps_I8_J,axiom,
    ! [A: $tType,B: $tType,G: $tType,C: $tType,F1: ( A > ( product_prod @ ( stream901396144_sp_mu @ A @ B @ C ) @ G ) ) > G,F22: B > C > G,X21: B,X22: C] :
      ( ( stream674629690_sp_mu @ A @ B @ C @ G @ F1 @ F22 @ ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) )
      = ( F22 @ X21 @ X22 ) ) ).

% sp\<^sub>\<mu>.simps(8)
thf(fact_165_fun_Omap__comp,axiom,
    ! [B: $tType,C: $tType,A: $tType,D: $tType,G3: B > C,F3: A > B,V: D > A] :
      ( ( comp @ B @ C @ D @ G3 @ ( comp @ A @ B @ D @ F3 @ V ) )
      = ( comp @ A @ C @ D @ ( comp @ B @ C @ A @ G3 @ F3 ) @ V ) ) ).

% fun.map_comp
thf(fact_166_type__copy__map__cong0,axiom,
    ! [B: $tType,D: $tType,E: $tType,A: $tType,C: $tType,M: B > A,G3: C > B,X: C,N: D > A,H: C > D,F3: A > E] :
      ( ( ( M @ ( G3 @ X ) )
        = ( N @ ( H @ X ) ) )
     => ( ( comp @ B @ E @ C @ ( comp @ A @ E @ B @ F3 @ M ) @ G3 @ X )
        = ( comp @ D @ E @ C @ ( comp @ A @ E @ D @ F3 @ N ) @ H @ X ) ) ) ).

% type_copy_map_cong0
thf(fact_167_K__record__comp,axiom,
    ! [C: $tType,B: $tType,A: $tType,C3: B,F3: A > C] :
      ( ( comp @ C @ B @ A
        @ ^ [X6: C] : C3
        @ F3 )
      = ( ^ [X6: A] : C3 ) ) ).

% K_record_comp
thf(fact_168_pred__equals__eq2,axiom,
    ! [B: $tType,A: $tType,R: set @ ( product_prod @ A @ B ),S3: set @ ( product_prod @ A @ B )] :
      ( ( ( ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R ) )
        = ( ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ S3 ) ) )
      = ( R = S3 ) ) ).

% pred_equals_eq2
thf(fact_169_same__fstI,axiom,
    ! [B: $tType,A: $tType,P2: A > $o,X: A,Y5: B,Y: B,R: A > ( set @ ( product_prod @ B @ B ) )] :
      ( ( P2 @ X )
     => ( ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ Y5 @ Y ) @ ( R @ X ) )
       => ( member @ ( product_prod @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) ) @ ( product_Pair @ ( product_prod @ A @ B ) @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X @ Y5 ) @ ( product_Pair @ A @ B @ X @ Y ) ) @ ( same_fst @ A @ B @ P2 @ R ) ) ) ) ).

% same_fstI
thf(fact_170_cut__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( cut @ A @ B )
      = ( ^ [F2: A > B,R4: set @ ( product_prod @ A @ A ),X6: A,Y4: A] : ( if @ B @ ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X6 ) @ R4 ) @ ( F2 @ Y4 ) @ ( undefined @ B ) ) ) ) ).

% cut_def
thf(fact_171_fun_Opred__map,axiom,
    ! [B: $tType,A: $tType,D: $tType,Q: B > $o,F3: A > B,X: D > A] :
      ( ( basic_pred_fun @ D @ B
        @ ^ [Uu: D] : $true
        @ Q
        @ ( comp @ A @ B @ D @ F3 @ X ) )
      = ( basic_pred_fun @ D @ A
        @ ^ [Uu: D] : $true
        @ ( comp @ B @ $o @ A @ Q @ F3 )
        @ X ) ) ).

% fun.pred_map
thf(fact_172_sp_092_060_094sub_062_092_060mu_062_Osimps_I9_J,axiom,
    ! [F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,F1: B > E,F22: C > F,X1: A > ( stream901396144_sp_mu @ A @ B @ C )] :
      ( ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 @ ( stream1294929701mu_Get @ A @ B @ C @ X1 ) )
      = ( stream1294929701mu_Get @ A @ E @ F @ ( comp @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream901396144_sp_mu @ A @ E @ F ) @ A @ ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 ) @ X1 ) ) ) ).

% sp\<^sub>\<mu>.simps(9)
thf(fact_173_sp_092_060_094sub_062_092_060mu_062_Omap__ident,axiom,
    ! [B: $tType,A: $tType,G: $tType,T2: stream901396144_sp_mu @ G @ A @ B] :
      ( ( stream1058219438_sp_mu @ A @ A @ B @ B @ G
        @ ^ [X6: A] : X6
        @ ^ [X6: B] : X6
        @ T2 )
      = T2 ) ).

% sp\<^sub>\<mu>.map_ident
thf(fact_174_sp_092_060_094sub_062_092_060mu_062_Osimps_I10_J,axiom,
    ! [B: $tType,E: $tType,A: $tType,F: $tType,C: $tType,F1: B > E,F22: C > F,X21: B,X22: C] :
      ( ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ F1 @ F22 @ ( stream1370332830mu_Put @ B @ C @ A @ X21 @ X22 ) )
      = ( stream1370332830mu_Put @ E @ F @ A @ ( F1 @ X21 ) @ ( F22 @ X22 ) ) ) ).

% sp\<^sub>\<mu>.simps(10)
thf(fact_175_sp_092_060_094sub_062_092_060mu_062_Omap__comp,axiom,
    ! [D: $tType,F: $tType,E: $tType,C: $tType,B: $tType,A: $tType,G: $tType,G12: C > E,G23: D > F,F1: A > C,F22: B > D,V: stream901396144_sp_mu @ G @ A @ B] :
      ( ( stream1058219438_sp_mu @ C @ E @ D @ F @ G @ G12 @ G23 @ ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ V ) )
      = ( stream1058219438_sp_mu @ A @ E @ B @ F @ G @ ( comp @ C @ E @ A @ G12 @ F1 ) @ ( comp @ D @ F @ B @ G23 @ F22 ) @ V ) ) ).

% sp\<^sub>\<mu>.map_comp
thf(fact_176_cuts__eq,axiom,
    ! [B: $tType,A: $tType,F3: A > B,R: set @ ( product_prod @ A @ A ),X: A,G3: A > B] :
      ( ( ( cut @ A @ B @ F3 @ R @ X )
        = ( cut @ A @ B @ G3 @ R @ X ) )
      = ( ! [Y4: A] :
            ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X ) @ R )
           => ( ( F3 @ Y4 )
              = ( G3 @ Y4 ) ) ) ) ) ).

% cuts_eq
thf(fact_177_cut__apply,axiom,
    ! [B: $tType,A: $tType,X: A,A3: A,R: set @ ( product_prod @ A @ A ),F3: A > B] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ A3 ) @ R )
     => ( ( cut @ A @ B @ F3 @ R @ A3 @ X )
        = ( F3 @ X ) ) ) ).

% cut_apply
thf(fact_178_fun_Omap__cong__pred,axiom,
    ! [B: $tType,A: $tType,D: $tType,X: D > A,Ya: D > A,F3: A > B,G3: A > B] :
      ( ( X = Ya )
     => ( ( basic_pred_fun @ D @ A
          @ ^ [Uu: D] : $true
          @ ^ [Z3: A] :
              ( ( F3 @ Z3 )
              = ( G3 @ Z3 ) )
          @ Ya )
       => ( ( comp @ A @ B @ D @ F3 @ X )
          = ( comp @ A @ B @ D @ G3 @ Ya ) ) ) ) ).

% fun.map_cong_pred
thf(fact_179_sp_092_060_094sub_062_092_060mu_062_Osize__gen__o__map,axiom,
    ! [B: $tType,E: $tType,A: $tType,F: $tType,C: $tType,F3: A > nat,Fa: E > nat,Fb: F > nat,Ga: B > E,Gb: C > F] :
      ( ( comp @ ( stream901396144_sp_mu @ A @ E @ F ) @ nat @ ( stream901396144_sp_mu @ A @ B @ C ) @ ( stream1362355943_sp_mu @ A @ E @ F @ F3 @ Fa @ Fb ) @ ( stream1058219438_sp_mu @ B @ E @ C @ F @ A @ Ga @ Gb ) )
      = ( stream1362355943_sp_mu @ A @ B @ C @ F3 @ ( comp @ E @ nat @ B @ Fa @ Ga ) @ ( comp @ F @ nat @ C @ Fb @ Gb ) ) ) ).

% sp\<^sub>\<mu>.size_gen_o_map
thf(fact_180_stream_Opred__map,axiom,
    ! [B: $tType,A: $tType,Q: B > $o,F3: A > B,X: stream @ A] :
      ( ( pred_stream @ B @ Q @ ( smap @ A @ B @ F3 @ X ) )
      = ( pred_stream @ A @ ( comp @ B @ $o @ A @ Q @ F3 ) @ X ) ) ).

% stream.pred_map
thf(fact_181_sp_092_060_094sub_062_092_060mu_062_Opred__map,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,G: $tType,Q1: C > $o,Q23: D > $o,F1: A > C,F22: B > D,X: stream901396144_sp_mu @ G @ A @ B] :
      ( ( stream123009735_sp_mu @ C @ D @ G @ Q1 @ Q23 @ ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ X ) )
      = ( stream123009735_sp_mu @ A @ B @ G @ ( comp @ C @ $o @ A @ Q1 @ F1 ) @ ( comp @ D @ $o @ B @ Q23 @ F22 ) @ X ) ) ).

% sp\<^sub>\<mu>.pred_map
thf(fact_182_sp_092_060_094sub_062_092_060mu_062_Opred__inject_I2_J,axiom,
    ! [A: $tType,B: $tType,C: $tType,P1: B > $o,P22: C > $o,A3: B,Aa2: C] :
      ( ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 @ ( stream1370332830mu_Put @ B @ C @ A @ A3 @ Aa2 ) )
      = ( ( P1 @ A3 )
        & ( P22 @ Aa2 ) ) ) ).

% sp\<^sub>\<mu>.pred_inject(2)
thf(fact_183_stream_Opred__inject,axiom,
    ! [A: $tType,P2: A > $o,A3: A,Aa2: stream @ A] :
      ( ( pred_stream @ A @ P2 @ ( sCons @ A @ A3 @ Aa2 ) )
      = ( ( P2 @ A3 )
        & ( pred_stream @ A @ P2 @ Aa2 ) ) ) ).

% stream.pred_inject
thf(fact_184_sp_092_060_094sub_062_092_060mu_062_Opred__inject_I1_J,axiom,
    ! [C: $tType,B: $tType,A: $tType,P1: B > $o,P22: C > $o,A3: A > ( stream901396144_sp_mu @ A @ B @ C )] :
      ( ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 @ ( stream1294929701mu_Get @ A @ B @ C @ A3 ) )
      = ( basic_pred_fun @ A @ ( stream901396144_sp_mu @ A @ B @ C )
        @ ^ [Uu: A] : $true
        @ ( stream123009735_sp_mu @ B @ C @ A @ P1 @ P22 )
        @ A3 ) ) ).

% sp\<^sub>\<mu>.pred_inject(1)
thf(fact_185_stream_Opred__cong,axiom,
    ! [A: $tType,X: stream @ A,Ya: stream @ A,P2: A > $o,Pa: A > $o] :
      ( ( X = Ya )
     => ( ! [Z: A] :
            ( ( member @ A @ Z @ ( sset @ A @ Ya ) )
           => ( ( P2 @ Z )
              = ( Pa @ Z ) ) )
       => ( ( pred_stream @ A @ P2 @ X )
          = ( pred_stream @ A @ Pa @ Ya ) ) ) ) ).

% stream.pred_cong
thf(fact_186_stream_Opred__mono__strong,axiom,
    ! [A: $tType,P2: A > $o,X: stream @ A,Pa: A > $o] :
      ( ( pred_stream @ A @ P2 @ X )
     => ( ! [Z: A] :
            ( ( member @ A @ Z @ ( sset @ A @ X ) )
           => ( ( P2 @ Z )
             => ( Pa @ Z ) ) )
       => ( pred_stream @ A @ Pa @ X ) ) ) ).

% stream.pred_mono_strong
thf(fact_187_sp_092_060_094sub_062_092_060mu_062_Opred__True,axiom,
    ! [B: $tType,A: $tType,G: $tType] :
      ( ( stream123009735_sp_mu @ A @ B @ G
        @ ^ [Uu: A] : $true
        @ ^ [Uu: B] : $true )
      = ( ^ [Uu: stream901396144_sp_mu @ G @ A @ B] : $true ) ) ).

% sp\<^sub>\<mu>.pred_True
thf(fact_188_stream_Opred__True,axiom,
    ! [A: $tType] :
      ( ( pred_stream @ A
        @ ^ [Uu: A] : $true )
      = ( ^ [Uu: stream @ A] : $true ) ) ).

% stream.pred_True
thf(fact_189_sp_092_060_094sub_062_092_060mu_062_Omap__cong__pred,axiom,
    ! [D: $tType,C: $tType,B: $tType,A: $tType,G: $tType,X: stream901396144_sp_mu @ G @ A @ B,Ya: stream901396144_sp_mu @ G @ A @ B,F1: A > C,G12: A > C,F22: B > D,G23: B > D] :
      ( ( X = Ya )
     => ( ( stream123009735_sp_mu @ A @ B @ G
          @ ^ [Z12: A] :
              ( ( F1 @ Z12 )
              = ( G12 @ Z12 ) )
          @ ^ [Z22: B] :
              ( ( F22 @ Z22 )
              = ( G23 @ Z22 ) )
          @ Ya )
       => ( ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ F1 @ F22 @ X )
          = ( stream1058219438_sp_mu @ A @ C @ B @ D @ G @ G12 @ G23 @ Ya ) ) ) ) ).

% sp\<^sub>\<mu>.map_cong_pred
thf(fact_190_stream_Omap__cong__pred,axiom,
    ! [B: $tType,A: $tType,X: stream @ A,Ya: stream @ A,F3: A > B,G3: A > B] :
      ( ( X = Ya )
     => ( ( pred_stream @ A
          @ ^ [Z3: A] :
              ( ( F3 @ Z3 )
              = ( G3 @ Z3 ) )
          @ Ya )
       => ( ( smap @ A @ B @ F3 @ X )
          = ( smap @ A @ B @ G3 @ Ya ) ) ) ) ).

% stream.map_cong_pred
thf(fact_191_rewriteR__comp__comp2,axiom,
    ! [C: $tType,B: $tType,E: $tType,D: $tType,A: $tType,G3: C > B,H: A > C,R1: D > B,R22: A > D,F3: B > E,L: D > E] :
      ( ( ( comp @ C @ B @ A @ G3 @ H )
        = ( comp @ D @ B @ A @ R1 @ R22 ) )
     => ( ( ( comp @ B @ E @ D @ F3 @ R1 )
          = L )
       => ( ( comp @ C @ E @ A @ ( comp @ B @ E @ C @ F3 @ G3 ) @ H )
          = ( comp @ D @ E @ A @ L @ R22 ) ) ) ) ).

% rewriteR_comp_comp2
thf(fact_192_rewriteL__comp__comp2,axiom,
    ! [A: $tType,C: $tType,B: $tType,D: $tType,E: $tType,F3: C > B,G3: A > C,L1: D > B,L2: A > D,H: E > A,R2: E > D] :
      ( ( ( comp @ C @ B @ A @ F3 @ G3 )
        = ( comp @ D @ B @ A @ L1 @ L2 ) )
     => ( ( ( comp @ A @ D @ E @ L2 @ H )
          = R2 )
       => ( ( comp @ C @ B @ E @ F3 @ ( comp @ A @ C @ E @ G3 @ H ) )
          = ( comp @ D @ B @ E @ L1 @ R2 ) ) ) ) ).

% rewriteL_comp_comp2
thf(fact_193_rewriteR__comp__comp,axiom,
    ! [C: $tType,D: $tType,B: $tType,A: $tType,G3: C > B,H: A > C,R2: A > B,F3: B > D] :
      ( ( ( comp @ C @ B @ A @ G3 @ H )
        = R2 )
     => ( ( comp @ C @ D @ A @ ( comp @ B @ D @ C @ F3 @ G3 ) @ H )
        = ( comp @ B @ D @ A @ F3 @ R2 ) ) ) ).

% rewriteR_comp_comp
thf(fact_194_rewriteL__comp__comp,axiom,
    ! [C: $tType,B: $tType,A: $tType,D: $tType,F3: C > B,G3: A > C,L: A > B,H: D > A] :
      ( ( ( comp @ C @ B @ A @ F3 @ G3 )
        = L )
     => ( ( comp @ C @ B @ D @ F3 @ ( comp @ A @ C @ D @ G3 @ H ) )
        = ( comp @ A @ B @ D @ L @ H ) ) ) ).

% rewriteL_comp_comp
thf(fact_195_convol__o,axiom,
    ! [B: $tType,C: $tType,D: $tType,A: $tType,F3: D > B,G3: D > C,H: A > D] :
      ( ( comp @ D @ ( product_prod @ B @ C ) @ A @ ( bNF_convol @ D @ B @ C @ F3 @ G3 ) @ H )
      = ( bNF_convol @ A @ B @ C @ ( comp @ D @ B @ A @ F3 @ H ) @ ( comp @ D @ C @ A @ G3 @ H ) ) ) ).

% convol_o
thf(fact_196_comp__cong,axiom,
    ! [C: $tType,B: $tType,D: $tType,A: $tType,E: $tType,F3: B > A,G3: C > B,X: C,F5: D > A,G5: E > D,X7: E] :
      ( ( ( F3 @ ( G3 @ X ) )
        = ( F5 @ ( G5 @ X7 ) ) )
     => ( ( comp @ B @ A @ C @ F3 @ G3 @ X )
        = ( comp @ D @ A @ E @ F5 @ G5 @ X7 ) ) ) ).

% comp_cong
thf(fact_197_convol__def,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( bNF_convol @ A @ B @ C )
      = ( ^ [F2: A > B,G4: A > C,A5: A] : ( product_Pair @ B @ C @ ( F2 @ A5 ) @ ( G4 @ A5 ) ) ) ) ).

% convol_def
thf(fact_198_comp__apply__eq,axiom,
    ! [B: $tType,D: $tType,A: $tType,C: $tType,F3: B > A,G3: C > B,X: C,H: D > A,K: C > D] :
      ( ( ( F3 @ ( G3 @ X ) )
        = ( H @ ( K @ X ) ) )
     => ( ( comp @ B @ A @ C @ F3 @ G3 @ X )
        = ( comp @ D @ A @ C @ H @ K @ X ) ) ) ).

% comp_apply_eq
thf(fact_199_ssubst__Pair__rhs,axiom,
    ! [B: $tType,A: $tType,R2: A,S: B,R: set @ ( product_prod @ A @ B ),S6: B] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S ) @ R )
     => ( ( S6 = S )
       => ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ R2 @ S6 ) @ R ) ) ) ).

% ssubst_Pair_rhs
thf(fact_200_curry__conv,axiom,
    ! [A: $tType,C: $tType,B: $tType] :
      ( ( product_curry @ B @ C @ A )
      = ( ^ [F2: ( product_prod @ B @ C ) > A,A5: B,B9: C] : ( F2 @ ( product_Pair @ B @ C @ A5 @ B9 ) ) ) ) ).

% curry_conv
thf(fact_201_curryI,axiom,
    ! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
      ( ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) )
     => ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 ) ) ).

% curryI
thf(fact_202_curry__K,axiom,
    ! [B: $tType,C: $tType,A: $tType,C3: C] :
      ( ( product_curry @ A @ B @ C
        @ ^ [X6: product_prod @ A @ B] : C3 )
      = ( ^ [X6: A,Y4: B] : C3 ) ) ).

% curry_K
thf(fact_203_curryD,axiom,
    ! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
      ( ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 )
     => ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).

% curryD
thf(fact_204_curryE,axiom,
    ! [A: $tType,B: $tType,F3: ( product_prod @ A @ B ) > $o,A3: A,B3: B] :
      ( ( product_curry @ A @ B @ $o @ F3 @ A3 @ B3 )
     => ( F3 @ ( product_Pair @ A @ B @ A3 @ B3 ) ) ) ).

% curryE
thf(fact_205_curry__def,axiom,
    ! [C: $tType,B: $tType,A: $tType] :
      ( ( product_curry @ A @ B @ C )
      = ( ^ [C5: ( product_prod @ A @ B ) > C,X6: A,Y4: B] : ( C5 @ ( product_Pair @ A @ B @ X6 @ Y4 ) ) ) ) ).

% curry_def
thf(fact_206_streams__def,axiom,
    ! [A: $tType] :
      ( ( streams @ A )
      = ( ^ [A8: set @ A] :
            ( collect @ ( stream @ A )
            @ ( streamsp @ A
              @ ^ [X6: A] : ( member @ A @ X6 @ A8 ) ) ) ) ) ).

% streams_def
thf(fact_207_streamsp__streams__eq,axiom,
    ! [A: $tType,A2: set @ A] :
      ( ( streamsp @ A
        @ ^ [X6: A] : ( member @ A @ X6 @ A2 ) )
      = ( ^ [X6: stream @ A] : ( member @ ( stream @ A ) @ X6 @ ( streams @ A @ A2 ) ) ) ) ).

% streamsp_streams_eq
thf(fact_208_streamsp_Ocoinduct,axiom,
    ! [A: $tType,X3: ( stream @ A ) > $o,X: stream @ A,A2: A > $o] :
      ( ( X3 @ X )
     => ( ! [X4: stream @ A] :
            ( ( X3 @ X4 )
           => ? [A6: A,S5: stream @ A] :
                ( ( X4
                  = ( sCons @ A @ A6 @ S5 ) )
                & ( A2 @ A6 )
                & ( ( X3 @ S5 )
                  | ( streamsp @ A @ A2 @ S5 ) ) ) )
       => ( streamsp @ A @ A2 @ X ) ) ) ).

% streamsp.coinduct
thf(fact_209_streamsp_Osimps,axiom,
    ! [A: $tType] :
      ( ( streamsp @ A )
      = ( ^ [A8: A > $o,A5: stream @ A] :
          ? [B9: A,S2: stream @ A] :
            ( ( A5
              = ( sCons @ A @ B9 @ S2 ) )
            & ( A8 @ B9 )
            & ( streamsp @ A @ A8 @ S2 ) ) ) ) ).

% streamsp.simps
thf(fact_210_streamsp_Ocases,axiom,
    ! [A: $tType,A2: A > $o,A3: stream @ A] :
      ( ( streamsp @ A @ A2 @ A3 )
     => ~ ! [A4: A,S4: stream @ A] :
            ( ( A3
              = ( sCons @ A @ A4 @ S4 ) )
           => ( ( A2 @ A4 )
             => ~ ( streamsp @ A @ A2 @ S4 ) ) ) ) ).

% streamsp.cases
thf(fact_211_acc__def,axiom,
    ! [A: $tType] :
      ( ( acc @ A )
      = ( ^ [R3: set @ ( product_prod @ A @ A )] :
            ( collect @ A
            @ ( accp @ A
              @ ^ [X6: A,Y4: A] : ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X6 @ Y4 ) @ R3 ) ) ) ) ) ).

% acc_def
thf(fact_212_accp__acc__eq,axiom,
    ! [A: $tType,R2: set @ ( product_prod @ A @ A )] :
      ( ( accp @ A
        @ ^ [X6: A,Y4: A] : ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X6 @ Y4 ) @ R2 ) )
      = ( ^ [X6: A] : ( member @ A @ X6 @ ( acc @ A @ R2 ) ) ) ) ).

% accp_acc_eq
thf(fact_213_acc_Ocases,axiom,
    ! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A )] :
      ( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
     => ! [Y3: A] :
          ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ A3 ) @ R2 )
         => ( member @ A @ Y3 @ ( acc @ A @ R2 ) ) ) ) ).

% acc.cases
thf(fact_214_acc_Osimps,axiom,
    ! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A )] :
      ( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
      = ( ? [X6: A] :
            ( ( A3 = X6 )
            & ! [Y4: A] :
                ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y4 @ X6 ) @ R2 )
               => ( member @ A @ Y4 @ ( acc @ A @ R2 ) ) ) ) ) ) ).

% acc.simps
thf(fact_215_acc_Ointros,axiom,
    ! [A: $tType,X: A,R2: set @ ( product_prod @ A @ A )] :
      ( ! [Y2: A] :
          ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y2 @ X ) @ R2 )
         => ( member @ A @ Y2 @ ( acc @ A @ R2 ) ) )
     => ( member @ A @ X @ ( acc @ A @ R2 ) ) ) ).

% acc.intros
thf(fact_216_acc__induct,axiom,
    ! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
      ( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
     => ( ! [X4: A] :
            ( ( member @ A @ X4 @ ( acc @ A @ R2 ) )
           => ( ! [Y3: A] :
                  ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ A3 ) ) ) ).

% acc_induct
thf(fact_217_acc_Oinducts,axiom,
    ! [A: $tType,X: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
      ( ( member @ A @ X @ ( acc @ A @ R2 ) )
     => ( ! [X4: A] :
            ( ! [Y3: A] :
                ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
               => ( member @ A @ Y3 @ ( acc @ A @ R2 ) ) )
           => ( ! [Y3: A] :
                  ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ X ) ) ) ).

% acc.inducts
thf(fact_218_acc__downward,axiom,
    ! [A: $tType,B3: A,R2: set @ ( product_prod @ A @ A ),A3: A] :
      ( ( member @ A @ B3 @ ( acc @ A @ R2 ) )
     => ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ A3 @ B3 ) @ R2 )
       => ( member @ A @ A3 @ ( acc @ A @ R2 ) ) ) ) ).

% acc_downward
thf(fact_219_not__acc__down,axiom,
    ! [A: $tType,X: A,R: set @ ( product_prod @ A @ A )] :
      ( ~ ( member @ A @ X @ ( acc @ A @ R ) )
     => ~ ! [Z: A] :
            ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Z @ X ) @ R )
           => ( member @ A @ Z @ ( acc @ A @ R ) ) ) ) ).

% not_acc_down
thf(fact_220_acc__induct__rule,axiom,
    ! [A: $tType,A3: A,R2: set @ ( product_prod @ A @ A ),P2: A > $o] :
      ( ( member @ A @ A3 @ ( acc @ A @ R2 ) )
     => ( ! [X4: A] :
            ( ( member @ A @ X4 @ ( acc @ A @ R2 ) )
           => ( ! [Y3: A] :
                  ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ Y3 @ X4 ) @ R2 )
                 => ( P2 @ Y3 ) )
             => ( P2 @ X4 ) ) )
       => ( P2 @ A3 ) ) ) ).

% acc_induct_rule
thf(fact_221_stream__all__iff,axiom,
    ! [A: $tType] :
      ( ( stream_all @ A )
      = ( ^ [P: A > $o,S2: stream @ A] :
          ! [X6: A] :
            ( ( member @ A @ X6 @ ( sset @ A @ S2 ) )
           => ( P @ X6 ) ) ) ) ).

% stream_all_iff
thf(fact_222_in__inv__image,axiom,
    ! [A: $tType,B: $tType,X: A,Y: A,R2: set @ ( product_prod @ B @ B ),F3: A > B] :
      ( ( member @ ( product_prod @ A @ A ) @ ( product_Pair @ A @ A @ X @ Y ) @ ( inv_image @ B @ A @ R2 @ F3 ) )
      = ( member @ ( product_prod @ B @ B ) @ ( product_Pair @ B @ B @ ( F3 @ X ) @ ( F3 @ Y ) ) @ R2 ) ) ).

% in_inv_image
thf(fact_223_Ball__comp__iff,axiom,
    ! [C: $tType,B: $tType,A: $tType,A2: B > ( set @ C ),F3: C > $o,G3: A > B] :
      ( ( comp @ B @ $o @ A
        @ ^ [X6: B] :
          ! [Y4: C] :
            ( ( member @ C @ Y4 @ ( A2 @ X6 ) )
           => ( F3 @ Y4 ) )
        @ G3 )
      = ( ^ [X6: A] :
          ! [Y4: C] :
            ( ( member @ C @ Y4 @ ( comp @ B @ ( set @ C ) @ A @ A2 @ G3 @ X6 ) )
           => ( F3 @ Y4 ) ) ) ) ).

% Ball_comp_iff
thf(fact_224_Ball__def,axiom,
    ! [A: $tType] :
      ( ( ball @ A )
      = ( ^ [A8: set @ A,P: A > $o] :
          ! [X6: A] :
            ( ( member @ A @ X6 @ A8 )
           => ( P @ X6 ) ) ) ) ).

% Ball_def
thf(fact_225_stream_Opred__set,axiom,
    ! [A: $tType] :
      ( ( pred_stream @ A )
      = ( ^ [P: A > $o,X6: stream @ A] :
          ! [Y4: A] :
            ( ( member @ A @ Y4 @ ( sset @ A @ X6 ) )
           => ( P @ Y4 ) ) ) ) ).

% stream.pred_set
thf(fact_226_Range__insert,axiom,
    ! [A: $tType,B: $tType,A3: B,B3: A,R2: set @ ( product_prod @ B @ A )] :
      ( ( range @ B @ A @ ( insert @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ A3 @ B3 ) @ R2 ) )
      = ( insert @ A @ B3 @ ( range @ B @ A @ R2 ) ) ) ).

% Range_insert
thf(fact_227_Domain__insert,axiom,
    ! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
      ( ( domain @ A @ B @ ( insert @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 ) )
      = ( insert @ A @ A3 @ ( domain @ A @ B @ R2 ) ) ) ).

% Domain_insert
thf(fact_228_RangeE,axiom,
    ! [A: $tType,B: $tType,B3: A,R2: set @ ( product_prod @ B @ A )] :
      ( ( member @ A @ B3 @ ( range @ B @ A @ R2 ) )
     => ~ ! [A4: B] :
            ~ ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ A4 @ B3 ) @ R2 ) ) ).

% RangeE
thf(fact_229_DomainE,axiom,
    ! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
     => ~ ! [B2: B] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B2 ) @ R2 ) ) ).

% DomainE
thf(fact_230_Range__iff,axiom,
    ! [A: $tType,B: $tType,A3: A,R2: set @ ( product_prod @ B @ A )] :
      ( ( member @ A @ A3 @ ( range @ B @ A @ R2 ) )
      = ( ? [Y4: B] : ( member @ ( product_prod @ B @ A ) @ ( product_Pair @ B @ A @ Y4 @ A3 ) @ R2 ) ) ) ).

% Range_iff
thf(fact_231_Domain__iff,axiom,
    ! [A: $tType,B: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
      = ( ? [Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ Y4 ) @ R2 ) ) ) ).

% Domain_iff
thf(fact_232_Range_Ocases,axiom,
    ! [B: $tType,A: $tType,A3: B,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ B @ A3 @ ( range @ A @ B @ R2 ) )
     => ~ ! [A4: A] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ A3 ) @ R2 ) ) ).

% Range.cases
thf(fact_233_Range_Osimps,axiom,
    ! [B: $tType,A: $tType,A3: B,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ B @ A3 @ ( range @ A @ B @ R2 ) )
      = ( ? [A5: A,B9: B] :
            ( ( A3 = B9 )
            & ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B9 ) @ R2 ) ) ) ) ).

% Range.simps
thf(fact_234_Domain_Ocases,axiom,
    ! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
     => ~ ! [B2: B] :
            ~ ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B2 ) @ R2 ) ) ).

% Domain.cases
thf(fact_235_Domain_Osimps,axiom,
    ! [B: $tType,A: $tType,A3: A,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) )
      = ( ? [A5: A,B9: B] :
            ( ( A3 = A5 )
            & ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A5 @ B9 ) @ R2 ) ) ) ) ).

% Domain.simps
thf(fact_236_Range_Ointros,axiom,
    ! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 )
     => ( member @ B @ B3 @ ( range @ A @ B @ R2 ) ) ) ).

% Range.intros
thf(fact_237_Range_Oinducts,axiom,
    ! [A: $tType,B: $tType,X: B,R2: set @ ( product_prod @ A @ B ),P2: B > $o] :
      ( ( member @ B @ X @ ( range @ A @ B @ R2 ) )
     => ( ! [A4: A,B2: B] :
            ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B2 ) @ R2 )
           => ( P2 @ B2 ) )
       => ( P2 @ X ) ) ) ).

% Range.inducts
thf(fact_238_Domain_ODomainI,axiom,
    ! [B: $tType,A: $tType,A3: A,B3: B,R2: set @ ( product_prod @ A @ B )] :
      ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A3 @ B3 ) @ R2 )
     => ( member @ A @ A3 @ ( domain @ A @ B @ R2 ) ) ) ).

% Domain.DomainI
thf(fact_239_Domain_Oinducts,axiom,
    ! [B: $tType,A: $tType,X: A,R2: set @ ( product_prod @ A @ B ),P2: A > $o] :
      ( ( member @ A @ X @ ( domain @ A @ B @ R2 ) )
     => ( ! [A4: A,B2: B] :
            ( ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ A4 @ B2 ) @ R2 )
           => ( P2 @ A4 ) )
       => ( P2 @ X ) ) ) ).

% Domain.inducts
thf(fact_240_Range__def,axiom,
    ! [B: $tType,A: $tType] :
      ( ( range @ A @ B )
      = ( ^ [R3: set @ ( product_prod @ A @ B )] :
            ( collect @ B
            @ ( rangep @ A @ B
              @ ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R3 ) ) ) ) ) ).

% Range_def
thf(fact_241_Rangep__Range__eq,axiom,
    ! [A: $tType,B: $tType,R2: set @ ( product_prod @ A @ B )] :
      ( ( rangep @ A @ B
        @ ^ [X6: A,Y4: B] : ( member @ ( product_prod @ A @ B ) @ ( product_Pair @ A @ B @ X6 @ Y4 ) @ R2 ) )
      = ( ^ [X6: B] : ( member @ B @ X6 @ ( range @ A @ B @ R2 ) ) ) ) ).

% Rangep_Range_eq

%----Helper facts (3)
thf(help_If_3_1_T,axiom,
    ! [P2: $o] :
      ( ( P2 = $true )
      | ( P2 = $false ) ) ).

thf(help_If_2_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $false @ X @ Y )
      = Y ) ).

thf(help_If_1_1_T,axiom,
    ! [A: $tType,X: A,Y: A] :
      ( ( if @ A @ $true @ X @ Y )
      = X ) ).

%----Conjectures (1)
thf(conj_0,conjecture,
    ( ( ( shd @ b @ ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ spb @ sp_b ) @ sb ) )
      = ( shd @ b @ ( stream377071682run_nu @ c @ b @ spb @ ( stream377071682run_nu @ a @ c @ sp_b @ sb ) ) ) )
    & ? [Sp4: stream1273403375_sp_nu @ c @ b,Sp5: stream1273403375_sp_nu @ a @ c,S5: stream @ a] :
        ( ( ( stl @ b @ ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ spb @ sp_b ) @ sb ) )
          = ( stream377071682run_nu @ a @ b @ ( stream104478819_comp2 @ c @ b @ a @ Sp4 @ Sp5 ) @ S5 ) )
        & ( ( stl @ b @ ( stream377071682run_nu @ c @ b @ spb @ ( stream377071682run_nu @ a @ c @ sp_b @ sb ) ) )
          = ( stream377071682run_nu @ c @ b @ Sp4 @ ( stream377071682run_nu @ a @ c @ Sp5 @ S5 ) ) ) ) ) ).

%------------------------------------------------------------------------------